将 pdffonts 传输到 grep

将 pdffonts 传输到 grep

所以我想使用 grep 列出与搜索字符串“Type 1C”匹配的 pdf 文件名。

grep应该从中获取数据pdffonts,但是当我执行此语法时,它只是pdffonts正常执行。

find . -type f -iname "*.pdf" -print0 -exec pdffonts {} \; |xargs -0 grep -c -l "Type 1C"

当我获得帮助文件-后添加时,这一定意味着它不支持这个参数。{}pdffonts

但是我怎样才能通过管道传输pdffontsgrep

答案1

输出流中包含“-----------------------”并且它被解释为命令开关,这会弄乱一切。因此,在继续管道之前,请使用 tr 删除这些讨厌的破折号。

查找 . -type f -iname "*.pdf" -print0 -exec pdffonts {} \; | tr -d '-' | xargs -0 | grep 'Type 1'
HelveticaNeueLight Type 1 是 否 否 18 0
HelveticaNeueRoman Type 1 是 否 否 22 0
HelveticaNeueMedium Type 1 是 否 否 26 0
HelveticaNeueLight Type 1 是 否 否 18 0
HelveticaNeueRoman Type 1 是 否 否 22 0
HelveticaNeueMedium Type 1 是 否 否 26 0
HelveticaNeueLight Type 1 是 否 否 18 0
HelveticaNeueRoman Type 1 是 否 否 22 0
HelveticaNeueMedium Type 1 是 否 否 26 0
HelveticaNeueLight Type 1 是 否 否 18 0
HelveticaNeueRoman Type 1 是 否 否 22 0
HelveticaNeueMedium Type 1 是 否 否 26 0

您不能使用“grep -l”,因为不再有文件的概念,输出的只是文本流。如果您想将文件列表作为索引保存,那么您很可能会使用 for 循环。

相关内容