shell 如何在bash脚本中拆分数组元素?

uqxowvwt  于 2023-10-23  发布在  Shell
关注(0)|答案(2)|浏览(154)

在bash脚本中,我有一个数组arr=("element1" "element2" "element3")。如何将输出打印为element 1 element 2 element 3
那么,如何为每个数组元素添加字符串和数字之间的空格?

kq0g1dla

kq0g1dla1#

我不清楚你到底想要什么。
如果关键字只是字面上的element,可以尝试:

echo ${arr[*]} | sed -E 's/(element)/\1 /g'

1.将数组打印为字符串
1.将element替换为element(以空格结尾)

mmvthczy

mmvthczy2#

echo输出其参数,中间有一个空格。因此,

echo "${arr[@]}"

就足够了如果你确定数组元素不包含空格,

echo ${arr[@]}

我也会这么做,但为什么要冒险呢?
如果你想在中间有多个空格,你可以使用printf。假设你想在元素之间插入3个空格。这将是

printf "%s   " "${arr[@]}"; echo

最后一个单独的echo只生成换行符。但是请注意,使用printf也会在最后一个元素之后添加3个空格。如果这困扰你,你可以剥离它:

printf "%s   " "${arr[@]}" | sed 's/...$//'; echo

或者,如果您有GNU head(例如,如果您使用的是Linux),

printf "%s   " "${arr[@]}" | head -c -3; echo

(the选项-c -3告诉head删除最后3个字符)。

相关问题