Letzte Spalte drucken:
awk '' file
Ausgabe:
2968
Die Variable NF
wird auf die Gesamtzahl der Felder im Eingabesatz festgelegt. $ NF enthält immer den Inhalt der letzten Spalte. Noch kürzer:
awk '$0=$NF' file
Ich habe eine Datei mit folgenden Daten:
15-06-18 22:00 2968
Jeder Eintrag wird durch eine neue Zeile getrennt. Ich möchte die letzte Zahl (2968) extrahieren. Wie kann ich das machen? (Ich bin unter Linux mit bash
).
Sorry, wenn ich nicht die richtigen Tags habe / am falschen Ort poste. Ich bin nicht sicher, wo ich diese Frage stellen sollte.
Letzte Spalte drucken:
awk '' file
Ausgabe:
2968
Die Variable NF
wird auf die Gesamtzahl der Felder im Eingabesatz festgelegt. $ NF enthält immer den Inhalt der letzten Spalte. Noch kürzer:
awk '$0=$NF' file
Ich habe eine Lösung gefunden, die die ersten 15 Zeichen entfernt.
sed 's/^..............//' tmp.txt
Danke, @ fixer1234!
Sie können die Daten extrahieren, die Sie verwenden müssen awk
, cut
oder sed
oder sogar eine Kombination von grep mit regex.
Wenn die Daten in jeder Zeile der Datei vorhanden sind, folgen Sie dem genauen Muster, das Sie hier dargestellt haben:
15-06-18 22:00 2968
Dann können Sie die letzte Zahl folgendermaßen extrahieren:
awk '{ print $3 }' file_path
Und um die Daten zu speichern, können Sie sie in eine andere Datei umleiten:
awk '{ print $3 }' file_path > new_file
Im Grunde ist awk ein sehr mächtiges Werkzeug für die Bearbeitung von Textdaten. In Ihrem Fall :
15-06-18 22:00 2968
Die obere Zeile kann als 3 Zeichenfolgen behandelt werden, die durch ein space
Dazwischenzeichen voneinander getrennt sind. Standardmäßig behandelt awk ein Leerzeichen als Trennzeichen (durch gegeben -F
).
Um etwas Spaß mit awk auszuprobieren, probieren Sie dies mit Ihren Daten aus und Sie werden es viel besser verstehen.
awk -F: '{ print $2 }' your_file awk -F- '{ print $3 }' your_file
Fühlen Sie sich frei, um weitere Details hinzuzufügen.
Angenommen, der Inhalt befindet sich in einer Datei mit dem Namen 'file', sollten die folgenden Schritte ausgeführt werden.
cut -d ' ' -f 3 file
Ausschneiden ist ein Unix-Befehl. Aus der Manpage:
-d
sagt das Trennzeichen zum Schneiden. -f
welche Felder zu wählen sind.file
ist die Quelldatei.Ergebnis geht zur Standardausgabe.
Oder in Bash:
#!/bin/bash cat "$1" | while read day hour value ; do echo $value done