Ich habe eine Textdatei, die wie folgt aussieht:Awk: Zählen alle Raum bis zur zweiten Spalte als eine einzelne Variable?
This is the first line 80 55 75%
Second line 25 95 74%
The next line 50 50 50%
Wie Sie auf der linken Seite die Anzahl der Wörter variieren sehen können. wenn ich einen Befehl wie diese Derzeit verwenden:
awk 'NR == 1 {print $1,$2,$3,$4}' file
Dies funktioniert sehr gut funktioniert für die erste Zeile und kehrt:
This is the first line
Aber wenn ich dies tun, in der zweiten Zeile:
awk 'NR == 2 {print $1,$2,$3,$4}' file
ich dieses, wie erwartet:
Second line 25 95
Aber das ist nicht was ich brauche. Für Scripting-Zwecke brauche ich awk oder vielleicht ein anderes Werkzeug, um etwas bis zur zweiten Zahlenspalte als eine einzige Variable zu "sehen". Unabhängig von der Anzahl der Wörter auf der linken Seite werden sie immer als eine einzige Variable angesehen. Wie kann ich das erreichen?
HINWEIS: Ich kann Zeilen wie diese:
This is a testmarket001 65 45 25%
Ich denke also nicht einfach awk sagen können alle Wörter bis zur ersten Nummer zu drucken, wie es ein Teil der Linie abgeschnitten würde .
Haben Sie Registerkarten zwischen Spalten? Dies würde das Leben viel einfacher machen. – fedorqui
Haben Sie am Ende nur 3 Nummern? Eine andere Möglichkeit, das Leben einfacher zu machen :) – Fazlin
warum nicht nur [a-z] [A-Z] nur aus der ganzen Zeile auswählen? – SMA