我正在阅读/sf/answers/700725511/,并且-e
对 sed的选项有疑问。
如果我是正确的,-e
则用于在内联 sed 命令之前。但是我们可以指定一个不带-e
. 例如,以下两个对我来说是一样的:
$ echo foo | sed 's/foo/bar/g'
bar
$ echo foo | sed -e 's/foo/bar/g'
bar
Run Code Online (Sandbox Code Playgroud)
它不像-f
需要指定一个sed脚本。我们什么时候需要-e
?在开头给出的链接中的特定情况下,我们为什么需要-e
?
谢谢。
这在 sed ( man sed
)的手册页中得到了回答
-e script
,--expression=script
将脚本添加到要执行的命令中
和
如果没有
-e
,--expression
[...] 选项被给出,那么第一个非选项参数被作为sed
要解释的脚本。所有剩余的参数都是输入文件的名称;如果未指定输入文件,则读取标准输入。
因此,如果您只有一个参数,sed
则将其视为sed
脚本。如果您有多个参数,则应使用-e
或--expression
确定哪个参数是sed
脚本。
在您的具体示例的情况下,这两种选择是同义词。