当我做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" "
但我不认为分隔符就是" "
。
假设没有任何文件在名称中有空格:
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)} '
最简单的方法是使用以下命令:
unzip -Z -1 archive.zip
要么
zipinfo -1 archive.zip
这将只列出文件名,每行一个。
这两个命令完全相同。 -Z
选项告诉解压缩将其余选项作为zipinfo选项处理。 请参阅手册页以获取unzip和zipinfo 。
如果您需要为空格提供文件名,请尝试:
unzip -l zipfilename.zip | awk -vf=4 ' /-----/ {p = ++p % 2; next} p { for (i=f; i<=NF;i++) printf("%s%s", $i,(i==NF) ? "\n" : OFS) }'
使用awk:
unzip -l zipfilename | awk '{print $4}'