2017-01-24 6 views
0

각 명령의 출력을 열에 인쇄하려는 여러 명령이 있습니다. 여기 서로 다른 명령의 출력을 나란히 나란히 결합하십시오.

echo "Batch 1 list" >> out.txt 
ssh -T [email protected] "echo 'DIS CLUSQMGR(*)'|runmqsc" |awk -F'[()]' '{print $2}' >> out.txt 
echo "===============================================================">> out.txt 
echo "Batch 2 list" >> out.txt 
ssh -T [email protected] "echo 'DIS CLUSQMGR(*)'|runmqsc" |awk -F'[()]' '{print $2}' >> out.txt 
echo "===============================================================">> out.txt 
echo "Batch 3 list">> out.txt 
ssh -T [email protected] "echo 'DIS CLUSQMGR(*)'|runmqsc" | awk -F'[()]' '{print $2}' >> out.txt 
echo "===============================================================">> out.txt 

이 출력됩니다 : 여기

는 명령과 출력 내가 가지고있는이다

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 

:이 형식의 출력을보고 싶다

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 

Count는 해당 열의 항목 수입니다.

답변

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 -은 -> 확실히 고양이가 파일
+1

출력으로 그들을 병합하는 것은 깨끗하지 않거나 그는 coloumns으로 정렬되지. 나는 그것을 포맷하기 위해 컬럼 -t를 사용했고, 나는 그것으로 작업 할 수있다. 고맙습니다 – MO12

0
뿐만 아니라 여기에 문자열 <<<에서 오는 stdin에서 읽고 있습니다 더

separet 파일의 각 출력을 얻는 1 개

paste out1.log out2.log out3.log|expand --tabs=1>final_out.log