给定输入文件text.txt
First token second pattern, second pattern.
并运行:
sed -r -i "s/pattern|second pattern/REPLACE/g" input.txt
我得到了新的input.txt:
First token REPLACE, REPLACE.
看起来像是 second pattern 首先应用于此处以匹配input.txt的内容。
second pattern
sed中的析取与sed中输入文本匹配的顺序是什么?
有没有一种方法可以指定应用匹配的析取的顺序,与-i内联命令一起使用?
不确定sed-regex引擎在交替中做什么( | )运算符,但获得所需结果的一种方法可能是在sed中分成两个regex语句:
|
sed -r -i "s/pattern/REPLACE/g;s/second pattern/REPLACE/g"
这将使您完全明确地控制应用替换的顺序,同时所有替换仍在一次中发生 sed 适用于就地编辑的调用( -i ).
sed
-i