Regex 使用grep查找具有1个以上匹配项的文件
我想知道是否有一种方法可以使用grep列出超过1个匹配项的文件。这是我正在做的。我试图浏览一个客户的网站,用字符串替换最后一个匹配项。因此,在每一页的底部,他都有一行:Regex 使用grep查找具有1个以上匹配项的文件,regex,bash,sed,grep,Regex,Bash,Sed,Grep,我想知道是否有一种方法可以使用grep列出超过1个匹配项的文件。这是我正在做的。我试图浏览一个客户的网站,用字符串替换最后一个匹配项。因此,在每一页的底部,他都有一行: <p align="center"><font face="Arial" color="#808080" size="2"> <?php include 'footer.php'; ?> 后跟一个页脚。我需要用以下行替换它(使用sed): <p align="center">
<p align="center"><font face="Arial" color="#808080" size="2">
<?php include 'footer.php'; ?>
后跟一个页脚。我需要用以下行替换它(使用sed):
<p align="center"><font face="Arial" color="#808080" size="2">
<?php include 'footer.php'; ?>
但是我想隔离只有第一行的一个实例的文件,这样我就可以替换它们。我的问题的另一个解决方案是仅在最后一个匹配上使用sed,或者在文件的最后50行上使用sed。有什么想法吗?我会用这个:
for a in *; do one=\`grep exit $a | wc -l\`; if [ $one = 1 ]; then echo replace in $a; fi; done
代替echo,进行替换。您可以实际使用
grep-c
获取文件中的匹配计数:
grep -c '<p align="center"><font face="Arial" color="#808080" size="2">' file
grep-c''文件
存储其输出
cnt=$(grep -c '<p align="center"><font face="Arial" color="#808080" size="2">' file)
cnt=$(grep-c''文件)
这是一个非常简单、优雅的问题解决方案。直接解析数据。这对于methis是一个不错的解决方案,但我选择了另一个答案,因为它是一个更短的解决方案,并且只使用grep,而不是同时使用多个不同的工具。像厕所