gpt4 book ai didi

linux - 使用 unzip -c 并执行多个 greps 时如何捕获文件名

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:24 25 4
gpt4 key购买 nike

我正在运行以下命令:

for file in 2017120[1-9]/54100_*.zip; do unzip -c "$file" | grep  "3613825" | grep '3418665'  ; done

这会执行 grep 工作以提取与我的 grep 参数匹配的数据,但我不知道如何捕获结果来自哪个文件。

我尝试添加 grep -H 但结果返回(标准输入)。

如何获取文件名?

最佳答案

当我需要做这样的事情时,我只需将文件名的 echo 添加到 for 循环中,如下所示:

for file in 2017120[1-9]/54100_*.zip; do echo $file; unzip -c "$file" | grep  "3613825" | grep '3418665'  ; done

这将打印出文件列表,匹配的 grep 行将在匹配所在的文件之后立即打印。像这样:

file_1
file_2
file_3
matching line
file_4
file_5
another matching line
file_6
...

因此我知道匹配行出现在 file_3file_5 中。

关于linux - 使用 unzip -c 并执行多个 greps 时如何捕获文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48798097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com