Extrahieren Sie zwei Werte aus Dateien

Extrahieren Sie zwei Werte aus Dateien

Ich möchte zwei Werte aus einer Reihe von TXT-Dateien extrahieren.

Dies sind die letzten beiden Zeilen (Zeile 49 und Zeile 50) meiner TXT-Datei

1  13593 3434 2.2585  0.9
2   3333  333 3.7118  0.8

& Ich möchte die 4. Spalte (zB 2,2585 & 3,7118) der Zeilen 49 und 50 aus jeder .txt-Datei extrahieren.

Gibt es eine Möglichkeit, dies zu tun?

Vielen Dank

Antwort1

Sie können es awkzur Textverarbeitung verwenden. Die folgende awk-Anweisung liest die Datei „input“ und druckt den Wert in Spalte 4 der Zeilen 49 und 50.

awk 'FNR==49 || FNR==50 {print $4}' Eingabe

Um nun alle Dateien im Verzeichnis zu lesen (vorausgesetzt, alle Dateien befinden sich im selben Verzeichnis), können Sie eine for-Schleife ausführen, um die Dateinamen zu lesen. Die endgültige Anweisung lautet also:

für Datei in *; führen Sie awk 'FNR==49 || FNR==50 {print $4}' "$file" aus; fertig

Und wie trososwie erwähnt, sind die Eingabedateien nur .txtFormat. Wir können also

awk 'FNR==49 || FNR==50 {print $4}' *.txt

verwandte Informationen