Ich verwende sed, um eine Liste von Dateien zu filtern. Ich habe eine sortierte Liste von Ordnern und ich möchte alle Zeilen nach einem bestimmten erhalten. Um diese Aufgabe auszuführen, verwende ich die beschriebene Lösung here, die ziemlich gut mit jeder Eingabe funktioniert, die ich versuchte, aber es funktioniert nicht, wenn das Spiel in der ersten Zeile ist. In diesem Fall sed wird alle Zeilen des EingangsEntfernen Sie alle Zeilen vor einem Treffer mit sed
Hier ist ein Beispiel entfernen:
(ssh) [email protected] : ~
[0] % ls -1/
bin
boot
...
sys
tmp
usr
var
vmlinuz
(ssh) [email protected] : ~
[0] % ls -1/| sed '1,/tmp/d'
usr
var
vmlinuz
(ssh) [email protected] : ~
[0] % ls -1/| sed '1,/^bin$/d'
# sed will delete all lines from the input stream
Wie soll ich den Befehl beachten Sie auch den Grenzfall ändern, wenn die erste Zeile von regexp abgestimmt ist?
BTW sed '1,1d'
funktioniert korrekt und entfernen Sie nur die erste Zeile.
Sie einen Kommentar danken. Korrigiert und fügte einige andere Lösungen hinzu. – jm666