rez*_*eza 13 linux bash terminal sh
我想更改文本中与某个单词匹配的所有单词与bourne shell中的另一个单词.例如:
hello sara, my name is sara too.
Run Code Online (Sandbox Code Playgroud)
变为:
hello mary, my name is mary too.
Run Code Online (Sandbox Code Playgroud)
有谁能够帮我?
我知道grep找到类似的单词,但我想用其他单词替换它们.
anu*_*ava 14
纯粹的bash方式:
before='hello sara , my name is sara too .'
after="${before//sara/mary}"
echo "$after"
Run Code Online (Sandbox Code Playgroud)
或使用sed:
after=$(sed 's/sara/mary/g' <<< "$before")
echo "$after"
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
hello mary , my name is mary too .
Run Code Online (Sandbox Code Playgroud)
您可以使用sed:
$ sed s/sara/mary/g <<< 'hello sara , my name is sara too .'
hello mary , my name is mary too .
Run Code Online (Sandbox Code Playgroud)
或者,如果您想要更改文件:
$ 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 .
Run Code Online (Sandbox Code Playgroud)