我正在进行就地搜索&用Perl替换。我需要替换包含另一个单词的所有行中的所有单词。例如,仅在包含const
的行中删除所有PMPI_
。使用sed
,我可以:
sed -i "/PMPI_/ s/const//g" file.c
然而,我需要多线功能,而且sed似乎并不适合这项工作。无论如何,我还在使用Perl。我试过了
perl -pi -e "/PMPI_/ s/const//g" file.c
其他变化没有成功。我只能找到与此网站相同的vim正则表达式。
答案 0 :(得分:3)
语法为:
perl -pi -e "s/const//g if /PMPI_/" file
注意:您说您需要多线功能。我不认为您正在寻找slurp模式(加载整个文件),但您也可以使用-00
选项的段落工作:
echo 'PMPI_ const
const const' | perl -00 -p -e "s/const//g if /PMPI_/"