Ich habe eine Textdatei mit einigen Informationen. Wie kann ich nur ungeradzahlige Zeilen aus dieser Datei in eine neue Datei schreiben? Shell-Skript verwenden ..
Ich habe eine Textdatei mit einigen Informationen. Wie kann ich nur ungeradzahlige Zeilen aus dieser Datei in eine neue Datei schreiben? Shell-Skript verwenden ..
Antworten:
Sie könnten verwenden sed
:
sed '2~2d' file > new-file
Dies beginnt in der zweiten Zeile, stimmt mit jeder zweiten Zeile danach überein und löscht die übereinstimmenden Zeilen aus dem Stream. Die verbleibenden ungeraden Zeilen werden in eine neue Datei umgeleitet.
sed '1~2!d'
aber warum ein Byte verschwenden?
sed 'n;d'
.
sed
: Druckt n;d
den Musterraum (die aktuelle Zeile?) Und ersetzt den Musterraum durch die nächste Zeile, löscht ihn sofort und startet den nächsten Zyklus: gnu.org/software/sed/manual/ sed.html # sed-befehlsliste
awk 'NR%2' file > newFile
NR ist die Nummer der aktuellen Zeile; NR%2
= ungerade Linie
NR%2
gleich 1 ist?
awk 'NR % 2 == 0' input.file > output.file