【发布时间】:2016-12-13 09:38:20
【问题描述】:
我有三个循环处理数组数据并打印到同一个日志文件。我想使用 bash 代码将每个循环的输出排序为由制表符分隔的列:
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
注意:1代表循环1的内容,2代表循环2的内容,3代表循环3的内容。
declare -a Array1
declare -a Array2
declare -a Array3
for (( i = 0 ; i < 9 ; i++))
do
echo "${Array1[$i]}"
done | tee -a log.txt
for (( i = 0 ; i < 9 ; i++))
do
echo "(( ${Array1[$i]}-${Array2[$i]} ))" | bc
done | tee -a log.txt
for (( i = 0 ; i < 9 ; i++))
do
echo "${Array3[$i]}"
done | tee -a log.txt
我用 column 命令尝试了一些东西,但没有像上面描述的那样工作。
【问题讨论】:
-
为每个循环使用不同的文件,然后使用粘贴将它们连接起来:
patse log[1-9].txt -
@Joe Lo:您打算使用单个循环打印所有列吗?还是只为每一列单独循环?
-
@Indian:单循环也是可以的。
-
@user000001:不过我更喜欢更清洁的解决方案 :))明天试试。
标签: arrays bash loops multiple-columns