Mit einer negation in der sed-Befehl in UNIX
Ich bin neu in Schale, angefangen zu lernen, dass es paar Tage her und ich habe ein problem festgestellt. Ich will das sed-Befehl um die Dateien zu filtern.
Zuerst möchte ich alle Dateien löschen aus der Liste, die nicht das Wort enthalten zad
Also ich mache Folgendes :
ls | sed '/[^{zad}]/d'
Verstehe ich nicht, warum dies entfernen Sie alle Dateien aus der Liste? Funktioniert es entfernen Sie alle Dateien, die nicht enthalten z, a oder d in Ihren Namen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
/[^{zad}]/d
entfernt jede Zeile, die enthält mindestens ein Zeichen, das nicht ein{zad}
. Das ist wohl wahr, für jeder Linie.Entfernen Sie Zeilen mit
zad
verwenden/zad/d
.Wenn Sie möchten, drucken Sie die Linien mit
zad
verwenden:-n
druckt nichts,p
druckt eine passende Zeile.-n
tut. Versuchen Sie es und Lesen Sieman sed
.sed '/zad/!d'
Könnte dies für Sie arbeiten (GNU sed):
oder:
fehlgeschlagen (Fehler auf), wenn es eine nicht leere Ordner nicht mit zad in seinem Namen, also vielleicht verwenden
-fr
aber seien Sie vorsichtig, nicht zu löschen einige wichtige Ordner mit dieser Art von Befehl