![如何让 grep 列出文件名之前的匹配项计数?](https://linux22.com/image/60479/%E5%A6%82%E4%BD%95%E8%AE%A9%20grep%20%E5%88%97%E5%87%BA%E6%96%87%E4%BB%B6%E5%90%8D%E4%B9%8B%E5%89%8D%E7%9A%84%E5%8C%B9%E9%85%8D%E9%A1%B9%E8%AE%A1%E6%95%B0%EF%BC%9F.png)
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
这带来了一个特殊的问题,因为我无法直接使用其他命令(例如sort
、sed
等)对 nul 终止输入的支持。我如何grep
先发布计数?
答案1
将输出通过管道传输到:
perl -pe 's/^(.*\0)(\d+)\n/$2 $1/s'
它将根据注释中的要求输出每个匹配项:计数、空格、文件名、\0。