Wie lösche ich alle Zeilen, die ein Wort enthalten, mit TextWrangler?

23905
Zee

Ich habe eine riesige Datei mit Tausenden von Zeilen, ich möchte nur die Zeilen löschen, die das Wort "Foo" enthalten.

Wie würde ich das machen? Ich bin auf einem Mac, also könnte ich ein Kommandozeilenprogramm verwenden, aber ich würde lieber TextWrangler verwenden.

4

7 Antworten auf die Frage

17
interestinglythere

In TextWrangler: Text > Prozesszeilen mit…

1
Avalanchis

Verwenden Sie einen regulären Ausdruck, um die Zeilen zu finden, und ersetzen Sie sie durch eine leere Zeichenfolge.

Hier eine Seite, die erklärt, wie man den regulären Ausdruck erstellt:

http://www.regular-expressions.info/completelines.html

Um dies in TextWrangler zu tun:

  1. Wählen Sie Suchen aus dem Suchmenü.
  2. Aktivieren Sie das Kontrollkästchen Grep .
  3. Geben Sie den regulären Ausdruck in das Textfeld Suchen ein.
  4. Wählen Sie Weiter.
1
Ignacio Vazquez-Abrams

In den meisten Editoren für grafische Programmierer können Sie solche Zeilen nicht löschen, sondern nur deren Inhalt ändern. Dies kann durch Ersetzen ^.*Foo.*$durch nichts geschehen .

Wenn Sie bereit sind, nach einem externen Werkzeug zu suchen, können Sie dies durch Filtern durchführen sed "/Foo/d".

Ich habe letztendlich mit sed aufgehört, aber das ^ .Foo. * $ Würde mit TextWrangler funktionieren. Vielen Dank! Zee vor 14 Jahren 0
So wäre sed, als Filter. Ignacio Vazquez-Abrams vor 14 Jahren 0
1
Chris Nava

Eine kurze Befehlszeile dafür ist:

grep -v myword myfile > newfile 
0
Gordon Davisson

Wenn Sie ^.*Foo.*\rmit nichts suchen und ersetzen ( wenn "Grep verwenden" aktiviert ist), werden Zeilen mit "Foo" in ihnen vollständig entfernt, und nicht nur gelöscht. Die einzige Einschränkung ist, dass es in der letzten Zeile der Datei nicht funktioniert. (Das Ersetzen \r.*Foo.*$durch nichts würde in der letzten Zeile funktionieren, nicht aber in der ersten.)

0
user247650

Diese perl-Befehlszeile wird den Trick ausführen!

perl -ni -e "print unless /Foo/" large_file.txt 

Sie können auch mehrere Dateien erstellen:

perl -ni -e "print unless /Foo/" *.txt 
0
joshua paul

Bare Bones TextWrangler http://www.barebones.com/products/textwrangler/

Textmenü Prozesszeilen mit… Menüelement

Geben Sie den zu löschenden Text ein. Wählen Sie dann Zeilen löschen

Bestätigen

Prozesslinien mit