Utilizzo sed
per modificare il file in atto:
sed -i '/^\(report\|-t\(h\|o\)\)/!d' your_file
Questo indica sed
di eliminare tutte le linee che non corrispondono al modello. Il modello stesso è ^
(inizio della linea), seguito da report
o -t
seguito da h
o o
.
Si noti che questa non è una vera modifica sul posto: sed
crea una copia di backup temporanea e sovrascrive il file originale con esso.
Se vuoi sed
conservare una copia di backup del file originale (che potrebbe essere una buona idea se il file contiene dati critici), dai allo -i
switch un'estensione per creare un file di backup:
sed -i'.bak' -e '/^\(report\|-t\(h\|o\)\)/!d' your_file
modificherà your_file
e creerà un backup dell'originale chiamato your_file.bak
.
Una nota a margine
Per favore, non fraintendete le mie intenzioni o offendetevi a questo, ma ho notato che avete molte domande simili relative a regex / elaborazione del testo. Vi consiglio di iniziare ad imparare sed
, awk
e grep
sul proprio per velocità di aiuto la vostra produttività. Ancora una volta, non fraintendetemi, sono troppo felice di aiutarvi (come lo sono la maggior parte delle persone qui intorno); è solo che penso che trarrai enormi benefici dalla raccolta di questi strumenti per il tuo uso quotidiano.
Solo per dimostrare quanto sono utili le persone qui intorno, considera il suggerimento di @ slm nei commenti qui sotto e sentiti libero di passare da questa chat in qualsiasi momento per domande.