我有多个命令,我想在列中打印每个命令的输出。
这是我的命令和输出:
echo "Batch 1 list" >> out.txt
ssh -T mqm@mqprb01 "echo 'DIS CLUSQMGR(*)'|runmqsc" |awk -F'[()]' '{print $2}' >> out.txt
echo "===============================================================">> out.txt
echo "Batch 2 list" >> out.txt
ssh -T mqm@mqprn01 "echo 'DIS CLUSQMGR(*)'|runmqsc" |awk -F'[()]' '{print $2}' >> out.txt
echo "===============================================================">> out.txt
echo "Batch 3 list">> out.txt
ssh -T mqm@mqprl01 "echo 'DIS CLUSQMGR(*)'|runmqsc" | awk -F'[()]' '{print $2}' >> out.txt
echo "===============================================================">> out.txt
这是输出:
Batch list
F111
F211
F311
F411
F511
F9P1
F9P4
F9P6
F9P7
FA11
===============================================================
Batch 2 list
A111
B211
V311
F411
B511
B9P1
NA11
FB11
CD11
===============================================================
batch 2 list
C111
C211
R311
Y411
E511
B9P1
EA11
AB11
ND11
我希望看到这种格式的输出:
Batch 1 list(count) Batch 2 list(count) Batch 3 list(count)
F111 A111 C111
F211 B211 C211
F311 V311 R311
F411 F411 Y411
F511 B511 E511
F9P1 B9P1 B9P1
F9P4 NA11 EA11
F9P6 FB11 AB11
F9P7 CD11 ND11
FA11
Count是该列中的条目数。
答案 0 :(得分:2)
将结果提取到单独的文件中,然后使用paste
命令横向定制它们:
paste out1 out2 out3 > out.formatted
这是您将获得的输出:
Batch list Batch 2 list batch 2 list
F111 A111 C111
F211 B211 C211
F311 V311 R311
F411 F411 Y411
F511 B511 E511
F9P1 B9P1 B9P1
F9P4 NA11 EA11
F9P6 FB11 AB11
F9P7 CD11 ND11
FA11
获得计数有点棘手。不要将标题放在开头,而是在粘贴时添加它们,如下所示:
export count1=$(grep -c '^' out1) # need to export so that it is available to `cat`s below which run in subshells
export count2=$(grep -c '^' out2)
export count3=$(grep -c '^' out3)
paste <(cat - <<< "Batch list ($count1)" out1) <(cat - <<< "Batch list ($count2)" out2) <(cat - <<< "Batch list ($count3)" out3) > out.formatted
cat -
- &gt;确保cat从stdin读取来自此处的字符串<<<
以及文件答案 1 :(得分:0)
最好在separet文件中获取每个输出并将它们合并为1
paste out1.log out2.log out3.log|expand --tabs=1>final_out.log