当我unzip -l zipfilename
时,我看到了
1295627 08-22-11 07:10 A.pdf
473980 08-22-11 07:10 B.pdf
...
我只想查看文件名。我试试这个
unzip -l zipFilename | cut -f4 -d" "
但我不认为分隔符只是" "
。
答案 0 :(得分:97)
最简单的方法是使用以下命令:
unzip -Z -1 archive.zip
或
zipinfo -1 archive.zip
这将仅列出文件名,每行一个。
这两个命令完全相同。 -Z
选项告诉unzip将其余选项视为zipinfo选项。请参阅unzip和zipinfo的手册页。
答案 1 :(得分:25)
假设没有文件名中有空格:
unzip -l filename.zip | awk '{print $NF}'
我的解压缩输出有页眉和页脚,因此awk脚本变为:
unzip -l filename.zip | awk '/-----/ {p = ++p % 2; next} p {print $NF}'
使用空格处理文件名的版本:
unzip -l filename.zip | awk '
/----/ {p = ++p % 2; next}
$NF == "Name" {pos = index($0,"Name")}
p {print substr($0,pos)}
'
答案 2 :(得分:6)
如果您需要使用空格来满足文件名,请尝试:
unzip -l zipfilename.zip | awk -v f=4 ' /-----/ {p = ++p % 2; next} p { for (i=f; i<=NF;i++) printf("%s%s", $i,(i==NF) ? "\n" : OFS) }'
答案 3 :(得分:3)
使用awk:
unzip -l zipfilename | awk '{print $4}'