sed -e 和 sed -f 的区别

Difference between sed -e and sed -f

sed -esed -f 选项有什么区别。其中哪些应该用于就地编辑。 我无法从手册页中清楚地理解它们的含义。

sed -e <commands> 执行在命令行上传递的命令,如 sed -e s/foo/bar/,而 sed -f <file> 执行在传递的文件中找到的命令。

None 其中与就地编辑有关。那是 -i <backup_extension>。如果没有传递扩展名(如 sed -i '' -e s/foo/bar/ file_to_edit),则不会进行备份。

根据 sed

的手册页

-e脚本 --expression=脚本 在处理输入

时,将脚本中的命令添加到要运行的命令集中

这意味着 sed 将在命令行本身上执行直接传递给它的命令,例如 sed -e 's/foo/bar/g'

其中, -f 脚本文件 --file=脚本文件 在处理输入时,将文件脚本文件中包含的命令添加到要 运行 的命令集中。

在使用 -f sed 时需要在 -f 选项后指定的文件中执行命令。这通常对复杂的操作很有用。

只要是就地编辑,任何选项都可以使用。例如:

sed -i -e 's/foo/bar/g'