如何让 grep 列出文件名之前的匹配项计数?

如何让 grep 列出文件名之前的匹配项计数?

grep -cZ有一个奇怪的行为,虽然文件名以 null 结尾,但会出现匹配数对应的文件名。通过od -c

0000000   /   u   s   r   /   i   n   c   l   u   d   e   /   u   c   o
0000010   n   t   e   x   t   .   h  \0   1  \n   /   u   s   r   /   i

这带来了一个特殊的问题,因为我无法直接使用其他命令(例如sortsed等)对 nul 终止输入的支持。我如何grep先发布计数?

答案1

将输出通过管道传输到:

perl -pe 's/^(.*\0)(\d+)\n/$2 $1/s'

它将根据注释中的要求输出每个匹配项:计数、空格、文件名、\0。

相关内容