2017-06-21 122 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命令說它不是一個目錄,所以應該有一種方法來將它作爲一個字符串讀取,對吧? –