通过grepping特定模式返回的许多结果中,如果我想在我的脚本中一个接一个地使用所有结果,我该怎么办?我在一个返回许多结果的证书文件夹中greder .der。我想使用grep命令中列出的每个.der证书。如何从grep结果中另外使用一个文件?
答案 0 :(得分:1)
您实际上是在浏览内容还是文件名?如果是文件名,最好使用find
命令:
find /path/to/folder -name "*.der" -exec some other commands {} ";"
一般来说应该更快。
答案 1 :(得分:0)
一种方法是使用grep -l
。这可确保您只获得一次文件。 -l
仅用于打印每个文件的名称,而不是匹配。
然后,您可以循环结果:
for file in `grep ....`
do
# work on $file
done
另请注意,如果文件名中包含空格,则存在大量可能的问题。请参阅Unix& Linux stackexchange上的Looping through files with spaces in the names。
答案 2 :(得分:0)
您可以将输出用作for
循环的一部分,例如:
for cert in $(grep '\.der' *) ; do
echo ${cert} # or something else
done
当然,如果那些der
内容实际上是文件(并且您使用ls | grep
来获取它们),则可以直接使用这些文件:
for cert in *.der ; do
echo ${cert} # or something else
done
在这两种情况下,您可能需要注意嵌入空格的参数。