GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ersetzen Sie in Bash ein Wort durch ein anderes

Sie können dafür sed verwenden:

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

Oder wenn Sie eine Datei an Ort und Stelle ändern möchten:

$ 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 .

Sie können sed:

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

wird die Ergebnisse ausgeben. Das Konstrukt s/// bedeutet Suchen und Ersetzen mit regulären Ausdrücken. Das 'g' am Ende bedeutet "jede Instanz" (nicht nur die erste).

Sie können auch Perl verwenden und die Datei direkt bearbeiten:

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

Oder awk

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

Reiner Bash-Weg:

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

ODER mit sed:

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

AUSGABE:

hello mary , my name is mary too .

Linux
  1. Verwenden von Wortmodifikatoren mit Bash-Verlauf in Linux

  2. Ergänzung mit „sed“?

  3. Wie ersetze ich eine Zeichenfolge durch eine Zeichenfolge, die Slash mit Sed enthält?

  4. Bash -c mit Positionsparametern?

  5. Ersetzen Sie eine Zeile durch einen anderen Inhalt mit Sed und Parallel für eine große Datei?

Ersetzen Sie unter Linux du durch Staub

Zeilenbereich durch Zeilenbereich ersetzen (sed oder andere)?

Ersetzen einer Teilzeichenfolge durch eine andere Zeichenfolge in Bash

Wie ersetze ich einfache Anführungszeichen durch ein anderes Zeichen in sed?

Wie kann man Zeichen rekursiv durch sed ersetzen?

Ersetzen Sie Zeilen in einer Datei durch Zeilen in einer anderen durch die Zeilennummer