Löschen Sie alle Zeilen, die kein bestimmtes Wort in kate enthalten

723
JakobH

Ich habe eine sehr große Datei und möchte alle Zeilen löschen, die das Wort "xyz" nicht enthalten.

Wie kann das in Kate gemacht werden?

0
Diese Task eignet sich besser für die Befehlszeile. Müssen Sie wirklich Kate benutzen? Larssend vor 9 Jahren 0
@geewee nein ich bin nicht. Ein Terminalbefehl wäre gleich gut JakobH vor 9 Jahren 0

1 Antwort auf die Frage

1
MariusMatutiae

Wenn Sie auf einem Nix sind oder Cygwin verwenden, dann

sed -i '/xyz/!d' filename 

wird es für Sie von der CLI tun.

Das -iFlag weist sed an, die Datei direkt zu ändern. In der Tat, das erste ist, was Sie tun sollten, laufen

sed '/xyz/!d' filename | more 

Da die ursprüngliche Datei dadurch nicht beeinträchtigt wird, drucken Sie die korrigierte Ausgabe auf dem Bildschirm (daher der Befehl more, um die Ausgabe vorsichtig zu analysieren), sodass Sie überprüfen können, ob alles wie gewünscht funktioniert. Wenn Sie zufrieden sind, können Sie den Befehl mit der -iOption ausführen .

Offensichtlich /xyx/ist das Suchmuster und !ddie auszuführende Aktion (= nicht löschen), Zeile für Zeile.