GNU/Linux >> Linux Esercitazione >  >> Linux

Sostituisci una parola con un'altra in bash

Puoi usare sed per questo:

$ sed s/sara/mary/g <<< 'hello sara , my name is sara too .'
hello mary , my name is mary too .

O se vuoi cambiare un file sul posto:

$ cat FILE
hello sara , my name is sara too .
$ sed -i s/sara/mary/g FILE
$ cat FILE
hello mary , my name is mary too .

Puoi usare sed:

# sed 's/sara/mary/g' FILENAME

produrrà i risultati. Il costrutto s/// significa ricerca e sostituzione utilizzando espressioni regolari. La 'g' alla fine significa "ogni istanza" (non solo la prima).

Puoi anche usare perl e modificare il file sul posto:

# perl -p -i -e 's/sara/mary/g;' FILENAME

Oppure awk

awk '{gsub("sara","mary")}1' <<< "hello sara, my name is sara too."

Modo bash puro:

before='hello sara , my name is sara too .'
after="${before//sara/mary}"
echo "$after"

O usando sed:

after=$(sed 's/sara/mary/g' <<< "$before")
echo "$after"

USCITA:

hello mary , my name is mary too .

Linux
  1. Aggiunta con 'sed'?

  2. Alias ​​con variabile in bash

  3. Sostituisci gli spazi con caratteri di sottolineatura tramite BASH

  4. Come sostituire in modo ricorsivo i caratteri con sed?

  5. sed sostituisce tutte le tabulazioni e gli spazi con un singolo spazio

Sostituisci le virgolette intelligenti con il comando sed di Linux

Sostituisci du con polvere su Linux

Sostituire una riga con un altro contenuto utilizzando Sed e Parallel per un file di grandi dimensioni?

Sostituire Intervallo di linee con Intervallo di linee (sed o altro)?

Aggiungere la parola alla fine della riga con Sed?

Sostituzione di una sottostringa con un'altra stringa in Bash