查找zip文件,打印路径和zip内容

时间:2016-05-31 20:50:08

标签: linux path find exec unzip

我有一系列编号的子目录,可能包含也可能不包含zip文件,在这些zip文件中是我需要的一些单行.txt文件。是否可以使用find和unzip -p的组合来列出同一输出行上的文件路径和单行内容?我想将结果保存为.txt并将其导入excel以便使用。

从主目录我可以成功找到并输出单行:

find . -name 'file.zip' -exec unzip -p {} file.txt \;

如何将查找输出(即文件路径)作为此解压缩命令的输出的前缀?理想情况下,我希望文本文件的每一行都类似于:

./path/to/file1.zip    "Single line of file1.txt file"
./path/to/file2.zip    "Single line of file2.txt file"

等等。有人可以提供一些建议吗?除了简单的命令之外,我对linux命令行的熟练程度不高。

谢谢。

1 个答案:

答案 0 :(得分:0)

将您要执行的所有代码放入shell脚本中,然后使用exec功能调用shell脚本,即

cat finder.bash
#!/bin/bash

printf "$@ : "   # prints just the /path/to/file/file.zip
unzip -p "$@" file.txt

现在,让它工作,你可以使它通用,以便稍后传递file.txt之外的其他人。

使脚本可执行

chmod 755 finder.bash

find拨打电话。即。

find . -name 'file.zip' -exec /path/to/finder.bash {} \;

(我没有简单的方法来测试这个,所以回复带有错误信息的评论)。