GNU/Linux >> Linux Esercitazione >  >> Linux

Utilizzo dei comandi Sed,ex e perl per trovare e sostituire un testo in Linux

Domanda:  Vorrei sostituire un testo con un collegamento nel tag di ancoraggio di un file html. La sfida è che il progetto contiene centinaia di tali file HTML e la sostituzione manuale di un testo in tutti quei file non è un modo intelligente per farlo. Quindi la domanda è:come posso fare lo stesso usando un singolo comando in Linux?

Soluzione:

Utilizzo di sed comando in Linux:

sed -i 's/#\(.*logo\)/domain.ca\1/' $file

Il comando precedente cerca la riga che contiene il pattern logo e sostituisce "#" con un link (ad es. un dominio.ca)

Puoi anche passare più file per il comando precedente come mostrato di seguito.

Un'altra variante del comando precedente è:

sed -i '/logo.png/ s/#/domain.ca/' *.html

Utilizzo di perl comando:

perl -i -pe 's/#/domain.ca/ if /logo.png/' about-us.html

Il comando è molto semplice:cerca nel testo e sostituiscilo con una determinata stringa se e solo se trova una stringa corrispondente su quella riga del file.

Tutti i comandi precedenti fanno lo stesso lavoro, ma differiscono solo per il modo in cui inserisci l'espressione regolare.

Usa Vim in ex modalità (non può essere utilizzata con più file):

ex -sc '/logo/s/#/http:\/\/domain.ca\//|x' about-us.html

Nel comando precedente l'espressione regolare '/logo/s/#/http:\/\/domain.ca\//|x ' consiste in 's' e 'x', dove 's' è per il sostituto e 'x' per salvare e chiudere il file.

Nota:il comando precedente usa vim , non puoi passare più file. Devi eseguire questo comando manualmente per ogni singolo file da sostituire.


Linux
  1. Il comando Sed di Linux:utilizzo ed esempi

  2. Comandi Linux - Panoramica ed esempi

  3. Utilizzo di sed per trovare e sostituire file di testo in Linux

  4. Usare "sed" per trovare e sostituire?

  5. Utilizzo di grep e sed per trovare e sostituire una stringa

Come utilizzare sed per trovare e sostituire la stringa nei file

Come utilizzare il comando SED per trovare e sostituire la stringa nei file

Trova testo nei file su Linux usando grep

50 esempi semplici e utili di comando Trova in Linux

Come trovare e sostituire il testo in Vim

Tutorial Unix Sed:trova e sostituisci testo all'interno di un file usando RegEx