grep 通过 od 转换内容并显示原始文件位置
grep transformed content via od and show original file location
我正在转换一些二进制文件并在其中获取一个值:
od -t uL * | grep 0000
这显示了我之后的匹配项,但没有显示文件名,如果我使用 grep
和 -H
标志,我只会得到 'standard input':
od -t uL * | grep -H 0000
(standard input):xxx 0000
(standard input):yyy 0000
如何获取返回的原始文件名?
这样不行。 grep 命令在标准输入流上工作,而不是在文件上工作。如果 grep 命令的退出代码为零(找到选定的行),您可以在 shell 中执行 for 循环,回显文件名。
该信息在 grep
是 运行 时丢失,因此您可能必须自己循环遍历文件
for f in *; do
od -t uL "$f" | awk -v f="$f" '/0000/ {print f":"[=10=]}'
done
我正在转换一些二进制文件并在其中获取一个值:
od -t uL * | grep 0000
这显示了我之后的匹配项,但没有显示文件名,如果我使用 grep
和 -H
标志,我只会得到 'standard input':
od -t uL * | grep -H 0000
(standard input):xxx 0000
(standard input):yyy 0000
如何获取返回的原始文件名?
这样不行。 grep 命令在标准输入流上工作,而不是在文件上工作。如果 grep 命令的退出代码为零(找到选定的行),您可以在 shell 中执行 for 循环,回显文件名。
该信息在 grep
是 运行 时丢失,因此您可能必须自己循环遍历文件
for f in *; do
od -t uL "$f" | awk -v f="$f" '/0000/ {print f":"[=10=]}'
done