首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数组上的Shell参数展开

数组上的Shell参数展开
EN

Stack Overflow用户
提问于 2016-06-08 09:11:09
回答 2查看 3.8K关注 0票数 6

假设我将一些数据读入一个Bash数组:

代码语言:javascript
复制
$ IFS=" " read -a arr <<< "hello/how are/you iam/fine/yeah"

现在,我希望为数组中的每个元素打印第一个/-sliced字段。

我所做的就是循环这些元素,并使用shell参数展开从第一个/中剥离所有内容。

代码语言:javascript
复制
$ for w in "${arr[@]}"; do echo "${w%%/*}"; done
hello
are
iam

但是,由于printf允许我们在一个表达式中打印数组的全部内容:

代码语言:javascript
复制
$ printf "%s\n" "${arr[@]}"
hello/how
are/you
iam/fine

..。我想知道在使用${w%%/*}时是否有一种方法可以使用shell参数展开printf,而不是循环所有元素并对每个元素执行它。

EN

Stack Overflow用户

发布于 2021-01-21 14:17:02

基于@fedorqui的答案,如果OP想输出数组而不是字符串,这对我来说是有效的-

代码语言:javascript
复制
a=(alpha beta gamma)
newArr=( "${a[@]//a/f}" )

我亲自来到这篇文章,希望在对数组的每个元素进行替换之后,输出一个数组。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37698108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档