我想知道是否可以使用grep列出超过1个匹配项的文件。这就是我正在做的事情。我试图通过客户的网站,用字符串替换最后一个匹配。所以在每一页的底部,他都有这一行:
<p align="center"><font face="Arial" color="#808080" size="2">
后面是一个页脚。我需要用这行替换它(使用sed):
<?php include 'footer.php'; ?>
但我想隔离只有第一行的1个实例的文件,所以我可以替换它们。我的问题的另一个解决方案是仅在最后一个匹配时使用sed,或者在文件的最后50行使用sed。对我有什么想法吗?
答案 0 :(得分:2)
您实际上可以使用grep -c
来获取文件中的匹配数:
grep -c '<p align="center"><font face="Arial" color="#808080" size="2">' file
存储其输出
cnt=$(grep -c '<p align="center"><font face="Arial" color="#808080" size="2">' file)
答案 1 :(得分:1)
我会用这个:
for a in *; do one=\`grep exit $a | wc -l\`; if [ $one = 1 ]; then echo replace in $a; fi; done
代替echo
,替换。