sed -i -e
和sed -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
也有效。
答案 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脚本而不是命令行参数。