在我的bash命令行中,当我使用时,unzip -l test.zip
我得到如下输出:
Archive: test.zip
Length Date Time Name
--------- ---------- ----- ----
810000 05-07-2014 15:09 file1.txt
810000 05-07-2014 15:09 file2.txt
810000 05-07-2014 15:09 file3.txt
--------- -------
2430000 3 files
但是我只对包含文件详细信息的行感兴趣。
我试图使用grep进行过滤,如下所示:
unzip -l test.zip | grep -v Length | grep -v "\-\-\-\-" | g -v Archive | grep -v " files"
但是它很长并且容易出错(例如,该列表中的文件名Archive将被删除)
使用unzip -l是否有其他选项(我检查了unzip手册页,但没有找到任何选项)或其他工具呢?
对我来说,重要的是不要真正解压缩存档,而只是查看其中的文件。
是的,我完全同意,这就是我问这个具体问题的原因:拥有更好和可行的解决方案。
—
рüффп
grep
都可以重构为Awk脚本,通常可以大大提高精度。awk 'NR >3 { if (/^ *---/) exit 0; print }'
将修剪前三行以及页脚,并且也可以轻松提取文件名(提示:)print substr($0, 29)
。