Ich habe eine Datei, die mehrere durch Tabulatoren getrennte Felder enthält. Ich versuche, alle Spalten außer der ersten auszudrucken, möchte sie jedoch alle nur in einer Spalte mit AWK ausdrucken. Das Format der Datei ist
col 1 col 2 ... col n
Es gibt mindestens 2 Spalten in einer Zeile.
Beispiel
2012029754 901749095
2012028240 901744459 258789
2012024782 901735922
2012026032 901738573 257784
2012027260 901742004
2003062290 901738925 257813 257822
2012026806 901741040
2012024252 901733947 257493
2012024365 901733700
2012030848 901751693 260720 260956 264843 264844
Also möchte ich awk sagen, dass es Spalte 2 bis Spalte n für n größer als 2 drucken soll, ohne Leerzeilen zu drucken, wenn in dieser Zeile keine Informationen in Spalte n vorhanden sind, alles in einer Spalte wie folgt.
901749095
901744459
258789
901735922
901738573
257784
901742004
901738925
257813
257822
901741040
901733947
257493
901733700
901751693
260720
260956
264843
264844
Das ist das erste Mal, dass ich awk benutze, also hab Geduld mit mir. Ich habe dies von der Befehlszeile aus geschrieben, was funktioniert:
awk '{i=2;
while ($i ~ /[0-9]+/)
{
printf "%s\n", $i
i++
}
}' bth.data
Es handelt sich mehr um eine Genehmigungssuche als um eine Frage, ob dies der richtige Weg ist, so etwas in AWK zu tun, oder ob es einen besseren/kürzeren Weg gibt.
Beachte, dass die tatsächliche Eingabedatei Millionen von Zeilen enthalten könnte.
Danke