linux - 用于解压缩文件并按顺序读取它们的 Shell 脚本

标签 linux shell

我有一个压缩文件夹列表,其中包含 xml 文件。 我想编写一个 Linux shell 脚本,它按顺序解压缩文件夹,读取它们并打印文件名(如果它包含特定字符串“Apple INC.”)

我尝试过以下代码。

for x in *.zip
do unzip $x
if grep -i "Apple INC" $x
then
echo $x
fi
done 

谁能帮我做对吗? 谢谢。

最佳答案

您可以使用unzip -p 将文件解压缩到标准输出,并将输出直接通过管道传输到grep-q 选项阻止 grep 输出匹配的行。

for z in *.zip ; do
    if unzip -p "$z" | grep -qi 'apple inc' ; then
        echo "$z"
    fi
done

你注意到代码是如何缩进的吗?

关于linux - 用于解压缩文件并按顺序读取它们的 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32772158/

相关文章:

linux - Nginx 仍然尝试打开默认错误日志文件,即使我在重新加载时设置了 nginx 配置文件

linux -\!在 Bash 命令中

shell - 无法在centOS中显示变量的值

linux - 将 bash -s 与其他参数一起使用

c++ - 如何实际使用 AddressSanitizer 和 MemorySanitizer?

c - ALSA "default"与 "hw:0,0"

linux - Tomcat 未启动 : Permission denied

linux - 当我们在 bash shell 中将 $ 放在变量之前时——什么时候不呢?

linux - 使用 sh 的 Shell 脚本。文件,显示子串总数

linux - 用于运行和测试 ssh 命令的 Unix 编辑器