这是一个错误......还是有解释?
请注意,我不是在寻找解决方法,而是为什么-ir
和-ri
的顺序很重要......
想象一下存储在文件data.txt
1, StringString, AnotherString 545
2, StringString, AnotherString 723
3, StringString, AnotherString 610
4, StringString, AnotherString 118
5, StringString, AnotherString 482
所需的字符串转换
Replace "StringString" with "Strung"
使用以下代码
sed -ir 's/String+/Strung/g' data.txt <-- won't work
sed -ri 's/String+/Strung/g' data.txt <-- will work
我认为选项标志的顺序无关紧要?有什么解释吗?
侧注:交换机-i
“在”-r允许“扩展的情况下”编辑文件“
正则表达式“(允许+
运算符)。运行sed 4.2.1
2010年12月在Ubuntu 12.10上。
答案 0 :(得分:5)
你检查过 sed --help还是man sed ?
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if extension supplied).
The default operation mode is to break symbolic and hard links.
This can be changed with --follow-symlinks and --copy.
答案 1 :(得分:5)
执行-ir
时,您指定“r”应该是备份文件的后缀。
如果按此顺序需要,您应该可以-i -r