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?


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.


2

Es ist sehr einfach, wenn Sie awk:

$ awk '(NR%3 && NR%5) || NR==15' input.txt

Ich denke, es sollte sein (NR! = 15), sagte OQ außer dem 15., nicht außer jedem 15..
Rich Homolka
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.