Löschen Sie jede 3. und 5. Zeile mit Ausnahme der 15. Zeile mit Stream EDitor

1

Ich muss jede 3. und 5. Zeile mit Ausnahme der 15. Zeile in einer Textdatei mit sed löschen . Hat jemand eine Idee?

Jleeeeeny
quelle
Ist das eine Interviewfrage? :)
Richard Holloway

Antworten:

3

Versuchen Sie den nächsten Befehl. Sie benötigen die GNU-Version von sed:

sed '15 b ; 0~3 d ; 0~5 d' infile

Überprüfen Sie zuerst, ob die 15. Zeile steht: Drucken und lesen Sie die nächste Zeile. Ansonsten löschen Sie jede 3. Zeile und jede 5. Zeile beginnend mit der ersten.

Birei
quelle
2

Es ist sehr einfach, wenn Sie awk:

$ awk '(NR%3 && NR%5) || NR==15' input.txt
kev
quelle
Ich denke, es sollte sein (NR! = 15), sagte OQ außer dem 15., nicht außer jedem 15..
Rich Homolka