我在bash中有一个数组...例如my_array:
my_array={1,2,3,4}
我需要两个要求: 1)将所有这些元素打印在同一行上,然后2)用制表符分隔每个元素。
当我打印出元素时,输出应该是这样:
1 2 3 4
元素之间的每个“空白”都是一个制表符。
任何有关如何执行此操作的建议将不胜感激。谢谢。
编辑 到目前为止,这是我尝试过的:
1)我知道我可以在同一行上打印出一个数组:
echo {my_array[*]}
2)为了获得所需的选项卡,我尝试制作一个仅带有选项卡的变量,然后将其添加到每个元素之间的数组中:
temp=" "
for(...)
do
((my_array+=$i))
((my_array+=$temp))
done
但是,这给了我一个错误。
编辑2 伊南提供的解决方案
这有效:
printf '%s\t' "${my_array[@]}"
但是,这里有几件事;在最后一个元素之后,如何删除最后一个标签?
答案 0 :(得分:0)
为什么不使用“ tr”?
my_array={1,2,3,4}
echo $my_array | tr "," "\t"
结果:
{1 2 3 4}
如果:
my_array=(1,2,3,4)
echo $my_array | tr "," "\t"
结果:
1 2 3 4