2017-01-24 4 views
0

Ich habe mehrere Befehle, für die ich die Ausgabe jedes Befehls in Spalten drucken möchte.Ausgabe von verschiedenen Befehlen in Spalten nebeneinander

Hier sind die Befehle und Ausgang ich habe:

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 

Hier ist die Ausgabe:

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 

Ich mag würde die Ausgabe in diesem Format sehen:

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 

Anzahl ist die Anzahl der Einträge in dieser Spalte.

Antwort

2

das Ergebnis in separate Dateien extrahieren und dann den paste Befehl verwenden sie zusammen seitlich zuzuschneiden:

paste out1 out2 out3 > out.formatted 

Dies ist die Ausgabe erhalten Sie:

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 

Getting die Zählungen ist ein wenig schwierig. Statt die Header am Anfang setzen, so dass sie während Einfügen hinzuzufügen, wie folgt aus:

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 - -> stellt sicher Katze liest aus stdin von hier String kommenden <<< sowie die Datei
+1

Ausgang ist nicht sauber oder es ist nicht in coloumns ausgerichtet ist. Ich habe Spalte -t ​​verwendet, um es zu formatieren, und ich kann damit arbeiten. Vielen Dank – MO12

0

besser, die jeweils Ausgänge in Separet Dateien zu erhalten und kombiniert sich als 1

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