Ich habe eine Textdatei mit einigen Informationen. Wie kann ich nur ungeradzahlige Zeilen aus dieser Datei in eine neue Datei schreiben? Shell-Skript verwenden ..
command-line
text-processing
Abhishek Chourasia
quelle
quelle
awk 'NR % 2 == 0' input.file > output.file
Antworten:
Sie könnten verwenden
sed
: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.
quelle
sed '1~2!d'
aber warum ein Byte verschwenden?sed 'n;d'
.sed
: Drucktn;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-befehlslisteNR ist die Nummer der aktuellen Zeile;
NR%2
= ungerade Liniequelle
NR%2
gleich 1 ist?NR%2 = 1 = True
das löst die Standardaktion aus:print