我有一个包含要测试的文件的目录,
比如 fileA
和.B
C
为了简单起见,假设我有一个要对这些文件中的每一个发出的命令,并找到一个能够为我提供正确输出的命令。
我将需要一个管道myCommand fileName | grep ExpectedResult
(在我的真实情况下,我在图书馆中寻找一个符号,所以它是readelf -s | grep MySymbol
)。
我想根据命令的结果发出这个find
命令。
我发现我的结果
find . -name *.so -print0 | xargs -0 myCommand | grep ExpectedResult
这工作正常,打印ExpectedResult
。
我想收到的是(假设我要查找的文件是B
):
A
B
ExpectedResult
C
这样我就可以看到在哪个文件中找到了结果。如果我正要查看grep
文件的内容,我需要-print
在find
. 不幸的是,如果我需要管道命令,这是行不通的。
显然,grep -H
也不会这样做,因为它只会说(standard input)
.
如何覆盖“超出”文件名?以某种方式在stderr上打印它?
我意识到我可以将我的文件名保存在一个变量中,对其进行处理等,但我希望看到一种更简单的方法。