Wie holt man alle geraden und ungeraden Zeilen aus einer Datei und speichert sie in zwei verschiedenen Dateien, z. B. Evenfile und Oddfile?

Wie holt man alle geraden und ungeraden Zeilen aus einer Datei und speichert sie in zwei verschiedenen Dateien, z. B. Evenfile und Oddfile?

Angenommen, ich habe eine Datei namens „a.txt“ mit 100 Zeilen. Nun möchte ich die ungeraden Zeilen, also die Zeilen 1, 3, 5 usw., extrahieren und in einer anderen Datei wie Odd.txt speichern. Das Gleiche möchte ich für alle geraden Zeilen tun, um sie in der Datei even.txt zu speichern und die Quelldatei so zu belassen, wie sie ist.

Antwort1

Sie können Folgendes verwenden awk:

awk '{ print > (NR % 2 ? "odd.txt" : "even.txt") }' a.txt

Dies liest a.txtund hängt Zeilen entweder an odd.txtoder an even.txt, abhängig von der aktuellen Zeilennummer.

Antwort2

Mit sed:

sed -ne 'w odd.txt' -e 'n; w even.txt' a.txt

verwandte Informationen