📜  sed replace - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:05:08.292000             🧑  作者: Mango

介绍 sed replace 命令

sed 命令是一个在 Unix/Linux 系统下非常强大的工具,它主要用于对文本文件进行处理。sed 命令可以实现许多功能,其中一个常见的用法是替换文本。sed 的替换功能可以通过 s 命令实现。

使用语法
sed 's/要替换的内容/替换后的内容/' 文件名
替换文件中的部分文本

下面的示例将替换文件 file.txt 中所有的 apple 文本为 orange

sed 's/apple/orange/' file.txt

在这个示例中,s 命令指定要替换的文本,/ 分隔符之间的 apple 表示要替换的文本,orange 表示替换后的文本。

全局替换

默认情况下,sed 命令只会替换每行中的第一个匹配项。如果想要替换每行中的所有匹配项,可以使用 g 选项。

下面的示例将会替换文件 file.txt 中每行中的所有 appleorange

sed 's/apple/orange/g' file.txt
替换指定范围内的文本

如果只想要在指定的行范围内替换文本,可以使用 start,end 的方式来指定。

下面的示例将会替换文件 file.txt 中第 3 行到第 6 行中的所有 appleorange

sed '3,6 s/apple/orange/g' file.txt

在这个示例中,3,6 表示要替换的行范围。因为使用了 /g 选项,sed 命令将会在指定行范围内替换所有匹配的 apple

存储替换结果

默认情况下,sed 命令只会将替换后的文本输出到终端。如果需要将替换后的文本保存到另一个文件中,可以使用重定向操作符 >

下面的示例将会替换文件 file.txt 中的 appleorange,并将替换后的结果保存到 newfile.txt 中。

sed 's/apple/orange/g' file.txt > newfile.txt
同时对多个文件进行替换

sed 命令中,可以使用 -i 选项来对原始文件进行进行替换。需要注意的是,-i 选项将直接在文件中进行替换,因此要谨慎使用。

下面的示例将会替换当前目录下所有 .txt 文件中的 appleorange

sed -i 's/apple/orange/g' *.txt

在这个示例中,-i 选项指定了要直接在文件中进行替换,*.txt 用于指定要替换的文件范围。

总结

本文介绍了 sed 命令的替换功能。sed 命令可以使用 s 命令实现文本替换,在默认情况下只会替换每行中的第一个匹配项,可以使用 g 选项实现全局替换。sed 命令还可以使用 start,end 的方式指定要替换的行范围。同时,sed 命令还可以使用重定向操作符 > 将替换后的文本保存到另一个文件中,也可以使用 -i 选项实现原地替换。