使用 grep 或其他工具来整理 7z -l 的输出

使用 grep 或其他工具来整理 7z -l 的输出

我需要获取 Linux 系统上复合文件的根目录。为此,我尝试使用 7zip (p7zip-full),因为此工具可以读取复合文件格式。

这基本上很有效,但它输出的是可怕的可解析文本。

http://pastebin.com/VP4ZW8jr

因此,我向社区提出的问题是,是否有机会很好地解析此输出以获得如下输出:

  • IPC_0805_CHIP_CAP
  • 文件头
  • 图书馆
  • 表格
  • DO-214AA
  • ...

我需要在 php 脚本中获取此信息。因此,最后将从 php 脚本执行该命令。如果有机会直接使用 php 读取复合文件结构,我将不胜感激。

谢谢

答案1

那里有一些输出,7z 似乎没有太多格式选项。我不想只尝试 grep,但 head、tail 和 cut 的组合应该足以输出文件名,类似的 cut 应该适用于其他信息,tee进程替换 ( <()) 可能会有所帮助。或者只是用 php 按字符剪切每一行(我对它不够熟悉)。

我的 7zr 版本在开头有 18 行非文件名信息,在结尾有 2 行,每行开头有 54 个非文件名字符,如果您的版本不同,请进行调整:

$ 7zr l test.7z  |tail -n+18|head -n-2|cut -c54-
file1
file2
file3

相关内容