Ich versuche, eine Zeile nach N Zeilen mit awk zu löschen, und ich kann es scheinbar nicht richtig machen. Das Dateiformat ist wie folgt
YYYYYY
XXXXXX
XXXXXX
YYYYYY
XXXXXX
XXXXXX
Das wahre Beispiel wäre
office3
3
1
office3
6
1
office3
6
3
office3
1
1
Wie kann ich die YY-Zeilen oder die Zeilen mit der Aufschrift "office" löschen? Ich muss alle zwei Zeilen eine Zeile löschen, unabhängig von deren Inhalt.
text-processing
sed
awk
mormaii2
quelle
quelle
Antworten:
Wenn Sie GNU sed haben, können Sie die Adressnotation
n~m
(n
überspringenm
) verwendensed '1~3d' file
Dadurch wird jede dritte Zeile ab der ersten gelöscht.
quelle
Um nur Zeilen modulo
N
mitawk
try auszuwählenoder
Hier
NR
bezeichnet die Anzahl der bisher verarbeiteten Zeilen.In Ihrem speziellen Fall (entfernen Sie alle Zeilen mit
Y
):quelle
NR%3==1
awk
von 1979 funktioniert )