使用 grep 在文件中查找字符串

使用 grep 在文件中查找字符串

如何使用以字母 a 开头的文件名在目录中的文件中找到字符串。我还想从grep运行中获取此字符串出现的次数。

我试过这个

cat * | grep -c字符串,但它会搜索所有文件。我只想搜索以字母 a 开头的文件

答案1

grep -c string a*

答案2

grep -c string a*

答案3

替代方法为您提供了“寻找' 命令:

查找 . -name “a*” | xargs grep -c 字符串

答案4

正如其他人所说,您的基本解决方案是:

grep -c string a*

您说您想对文件进行排序并列出额外信息。

您无法使用 grep 获得所有这些内容,但是如果您不担心效率并且文件没有空格或其他奇怪的字符,则可以使用 ls 完成部分操作:

ls -tr `grep -l string a*` | while read file; do
    grep -c string "$file" | tr '\n' '\t'
    ls -l "$file"
done

反引号中的第一个 grep 搜索匹配的文件,仅列出名称。然后第一个 ls 按修改时间反向排序。然后我们再次搜索每个文件以计算出现次数,并将计数添加到标准“ls -l”列表的前面。

这会很慢;如果你真的需要一个更快的版本,你可以用脚本语言来破解一个。

相关内容