2017-06-15 60 views
0

我转变一些二进制文件,并在他们grepping值:grep的改造内容

od -t uL * | grep 0000 

这显示出我之后的比赛,但它没有显示文件名,并如果我使用grep-H标志我只得到“标准输入”:

od -t uL * | grep -H 0000 
(standard input):xxx 0000 
(standard input):yyy 0000 

我怎样才能得到原来的文件名返回?

回答

3

这些信息是由时间grep失去运行,所以你可能要遍历自己

for f in *; do 
    od -t uL "$f" | awk -v f="$f" '/0000/ {print f":"$0}' 
done 
+0

我怀疑这将是答案的文件,但我想也许有办法解决它。谢谢! – Tamas

+0

@Inian右键感谢您的支持 –

+0

是的,感谢您的更新,确实'''确实没有必要。 – Tamas

0

这样,你不能。 grep命令正在处理标准输入流,而不是文件。您可以在shell中执行for循环,如果grep命令的退出代码为零(找到选定的行),则回显文件名。