在bash脚本中,我有一个数组arr=("element1" "element2" "element3")。如何将输出打印为element 1 element 2 element 3那么,如何为每个数组元素添加字符串和数字之间的空格?
arr=("element1" "element2" "element3")
element 1 element 2 element 3
kq0g1dla1#
我不清楚你到底想要什么。如果关键字只是字面上的element,可以尝试:
element
echo ${arr[*]} | sed -E 's/(element)/\1 /g'
1.将数组打印为字符串1.将element替换为element(以空格结尾)
mmvthczy2#
echo输出其参数,中间有一个空格。因此,
echo
echo "${arr[@]}"
就足够了如果你确定数组元素不包含空格,
echo ${arr[@]}
我也会这么做,但为什么要冒险呢?如果你想在中间有多个空格,你可以使用printf。假设你想在元素之间插入3个空格。这将是
printf
printf "%s " "${arr[@]}"; echo
最后一个单独的echo只生成换行符。但是请注意,使用printf也会在最后一个元素之后添加3个空格。如果这困扰你,你可以剥离它:
printf "%s " "${arr[@]}" | sed 's/...$//'; echo
或者,如果您有GNU head(例如,如果您使用的是Linux),
head
printf "%s " "${arr[@]}" | head -c -3; echo
(the选项-c -3告诉head删除最后3个字符)。
-c -3
2条答案
按热度按时间kq0g1dla1#
我不清楚你到底想要什么。
如果关键字只是字面上的
element
,可以尝试:1.将数组打印为字符串
1.将
element
替换为element
(以空格结尾)mmvthczy2#
echo
输出其参数,中间有一个空格。因此,就足够了如果你确定数组元素不包含空格,
我也会这么做,但为什么要冒险呢?
如果你想在中间有多个空格,你可以使用
printf
。假设你想在元素之间插入3个空格。这将是最后一个单独的
echo
只生成换行符。但是请注意,使用printf
也会在最后一个元素之后添加3个空格。如果这困扰你,你可以剥离它:或者,如果您有GNU
head
(例如,如果您使用的是Linux),(the选项
-c -3
告诉head
删除最后3个字符)。