📅  最后修改于: 2023-12-03 14:47:21.530000             🧑  作者: Mango
Sed 是一个在 Linux 中广泛使用的流编辑器,可以用它来处理文本。s 指令是 sed 中用来替换文本的命令之一。在文本中找到第一个匹配的字符串并替换成指定的字符串。
sed 's/要搜索的字符串/替换成的字符串/' filename
在示例文件 test.txt
中,查找第一个匹配的 hello
并替换为 world
:
$ cat test.txt
hello world
hello there
hello world again
$ sed 's/hello/world/' test.txt
world world
hello there
hello world again
可以使用正则表达式匹配更具体的字符串:
$ cat test.txt
hello123 world
hello there
hello world again
$ sed 's/hello[0-9]\+/world/' test.txt
world world
hello there
hello world again
此例使用正则表达式 [0-9]\+
来匹配一个或多个数字,用来更具体地替换目标字符串。
默认情况下,sed 不会修改文件本身,而是在执行时输出到标准输出。如果要在原始文件中修改,请结合 -i
参数使用:
$ cat test.txt
hello world
hello there
hello world again
$ sed -i 's/hello/world/' test.txt
$ cat test.txt
world world
world there
world world again
Sed 是一个非常强大的文本编辑工具,在 Linux 中广泛使用。使用 s 命令可以查找并替换目标字符串,而使用正则表达式可以更精确地匹配目标字符串。在执行时,sed 默认不修改原始文件,如果要修改原始文件,必须添加 -i
参数。