我知道sed会
例子是:
pig cow
sed -e 's/pig/cow/; s/cow/horse/;' sample.txt
horse horse
horse cow
我预期输出的原因是:
发布于 2018-10-10 06:34:03
默认情况下,替换命令s将只替换第一个匹配项,除非在替换结束分隔符之后使用某些标志,如
sed -e 's/pig/cow/g; s/cow/horse/g' <sample.txtg标志告诉sed为正则表达式的任何不重叠匹配重复尽可能多次的替换。
s命令的另一组标志(虽然在这里不适用,但了解一下可能有用)是个位数标志,您可以选择用这些标志替换模式的第n次匹配,如下所示
sed -e 's/a/A/3'上面的内容将在每一行输入上将第三个a更改为一个A。
有关进一步信息,请参阅系统上的sed手册(man sed)。
https://unix.stackexchange.com/questions/474407
复制相似问题