【问题标题】:Find the file path of a specific file inside a zipped folder在压缩文件夹中查找特定文件的文件路径
【发布时间】:2017-11-24 17:11:10
【问题描述】:

我正在为我的脚本而苦苦挣扎。我想找到特定文件的完整文件路径,就像这个例子: /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

我用过这个命令根本没有成功:

第一次尝试:

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

第一个输出:

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

第三次尝试:

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

第三个输出

/path/folder/Folder_06may2017.zip

【问题讨论】:

    标签: shell file awk find zip


    【解决方案1】:

    怎么样:

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

    【讨论】:

    • 如何将输出路径作为复制命令的输入路径?因为复制命令说它不是目录,所以应该有办法将其读取为字符串,对吧?
    猜你喜欢
    • 2014-03-13
    • 2011-12-12
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多