Verwenden Sie sed
, um die vorhandene Datei zu ändern:
sed -i '/^\(report\|-t\(h\|o\)\)/!d' your_file
Dies weist sed
an, alle Zeilen zu löschen, die nicht mit dem Muster übereinstimmen. Das Muster selbst ist ^
(Zeilenanfang), gefolgt von entweder report
oder -t
gefolgt von entweder h
oder o
.
Sie sollten beachten, dass dies keine tatsächliche direkte Änderung ist: sed
Erstellt eine temporäre Sicherungskopie und überschreibt damit die Originaldatei.
Wenn Sie sed
eine Sicherungskopie der Originaldatei aufbewahren möchten (was eine gute Idee sein kann, wenn die Datei wichtige Daten enthält), geben Sie dem -i
Switch eine Erweiterung zum Erstellen einer Sicherungsdatei:
sed -i'.bak' -e '/^\(report\|-t\(h\|o\)\)/!d' your_file
ändert your_file
und erstellt ein Backup des aufgerufenen Originals your_file.bak
.
Eine Randnotiz
Bitte missverstehen Sie meine Absichten nicht und beleidigen Sie dies nicht, aber ich habe festgestellt, dass Sie viele ähnliche Fragen zu Regex / Textverarbeitung haben. Ich rate Ihnen , das Lernen zu beginnen sed
, awk
und grep
auf eigene Faust zu helfen beschleunigen Ihre Produktivität. Versteh mich nicht falsch, ich bin nur allzu glücklich zu helfen (wie die meisten Leute hier); Ich denke nur, dass Sie enorm davon profitieren werden, wenn Sie diese Werkzeuge für Ihren täglichen Gebrauch in die Hand nehmen.
Um zu beweisen, wie hilfreich die Leute hier sind, sollten Sie den Vorschlag von @ slm in den Kommentaren unten berücksichtigen und jederzeit bei Fragen in diesem Chatroom vorbeischauen .