我有一系列编号的子目录,可能包含也可能不包含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命令行的熟练程度不高。
谢谢。
答案 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 {} \;
(我没有简单的方法来测试这个,所以回复带有错误信息的评论)。