【问题标题】:Find a zip file, print path and zip contents查找 zip 文件、打印路径和 zip 内容
【发布时间】:2016-09-30 00:53:30
【问题描述】:

我有一系列编号的子目录,这些子目录可能包含也可能不包含 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 命令行的经验不是很丰富。

谢谢。

【问题讨论】:

    标签: linux path find exec unzip


    【解决方案1】:

    把你要执行的所有代码放到一个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 {} \;
    

    (我没有简单的方法来测试这个,所以在 cmets 中回复错误消息)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-28
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      相关资源
      最近更新 更多