`sed -i -e`和`sed -ie`有什么区别?

时间:2017-04-24 07:46:41

标签: bash unix sed

sed -i -esed -ie之间有什么区别? 从帮助来看并不是很清楚 sed --help

  -e script, --expression=script
                 add the script to the commands to be executed

在第二种情况下,它会创建一些备份文件吗?

一般来说,Unix utils不允许组合标志?

只是展示正在发生的事情的一个例子:

echo "bla" > 1.txt
cat 1.txt
bla
sed -i -e 's:bla:blakva:g' 1.txt
cat 1.txt
blakva
sed -ie 's:bla:blakva:g' 1.txt
cat 1.txt
blakvakva
*Note: also 1.txte is created, containing
cat 1.txte
blakva

还不确定-e在我的示例中做了什么,因为sed -i 's:bla:blakva:g' 1.txt也有效。

2 个答案:

答案 0 :(得分:6)

当您提供sed -i -e时,sed会看到两个选项。

但是,当您提供sed -ie时,sed-i选项suffix作为e。这就是您使用e后缀进行文件备份的原因。

  

来自man sed

     

-i [SUFFIX], - in-place [= SUFFIX]

     

编辑文件(如果提供SUFFIX,则进行备份)

答案 1 :(得分:2)

选项-i表示它就地修改了您正在进行的文件。否则sed只显示已完成的修改。如果您在-i之后添加后缀(例如-i.bck),它将备份您的输入文件,然后添加提供的后缀。

选项-e允许您提供sed脚本而不是命令行参数。