sed中-e标志的用法是什么

问题描述

从网上的一些阅读来看,sed的-e标志用法好像是记一个sed脚本

例如:

sed -i -e 's/default_language/language/g' "$CONF_FILE"

但是从自我测试和一些网上搜索来看,这条线似乎也应该有效:

sed -i 's/default_language/language/g' "$CONF_FILE"

那我需要 -e 做什么?它仅对我想连续编写多个脚本的情况有用吗?因为这也可以通过 ; 进行管理。

解决方法

根据manual

如果没有给出 -e--expression-f--file 选项,则 第一个非选项参数被视为 sed 脚本来解释。所有剩余的参数都是输入文件的名称;如果没有指定输入文件,则 读取标准输入。

正如您已经提到的,-e 可用于多个命令。

sed 'cmd1; cmd2'
sed -e 'cmd1; cmd2'
sed -e 'cmd1' -e 'cmd2'