2017-06-21 88 views
1

我正在努力处理我的脚本。我想找到一个特定文件的完整文件路径,就像这个例子: /path/folder_06may2017.zip/file_B.txt查找压缩文件夹内特定文件的文件路径

我希望你能帮我解决这个问题。这将是非常有用的。

目录和文件样本

- Folder_01may2017.zip 
     + file_A.txt 
     + file_B.txt 

- Folder_06may2017.zip 
     + file_A.txt 
     + file_B.txt 

我已经使用这个没有成功可言命令:

1日尝试:

find "/path/folder/" -name "*06may2017*" -print -exec unzip -l {} \; | grep -i 'file_B'

1输出:

182118 2017-05-06 11:20 file_B.txt

第二尝试:

find "/path/folder/" -name "*06may2017*" -print -exec unzip -l {} \; | grep -i 'file_B'| awk '{ print $4 }' ${PWD}

第二输出:

awk: warning: command line argument '/path/folder' is a directory: skipped

第3次尝试:

find "/path/folder" -name "*06may2017*" -exec grep -l "file_B" /dev/null '{}' \;

3个输出

/path/folder/Folder_06may2017.zip

回答

1

什么:

$ find "/path/folder" -name "*06may2017*" -exec unzip -l {} \; | awk '$1 ~ /Archive/{zipname = $2}; $4 ~ /file_B/ {printf "%s/%s\n", zipname, $4}' 
+0

哇,它的工作原理!非常感谢你@Lacobus! –

+0

如何使用输出路径作为复制命令的输入路径? cuz copy命令说它不是一个目录,所以应该有一种方法来将它作为一个字符串读取,对吧? –