如何在文件中替换一些字符和EOF

时间:2012-04-05 13:51:46

标签: file shell search sed ack

在某些PHP文件中,我想替换"?>\s\t\n\EOF"。 我测试这个用于搜索发生此问题的所有文件:

ack "\?\>[\s\n\t]+\z"

我接受结果,但我只想用?>EOF替换它。 我用“sed”测试另一个命令:

sed 's/?>[\n\t\s]+\z/?>/'

你有一些提示吗?

示例:

?>  

1 个答案:

答案 0 :(得分:1)

ack是基于perl的,而sed不识别像\ z这样的东西。使用perl:

perl -pe 's/\?\>[\s\n\t]+\z/?>\n/'

此外,\ z不是EOF,而只是字符串的结尾,因此\ z将匹配每行的结尾。如果您希望仅在文件末尾匹配,则需要使用\ z。

以外的其他内容