一尘不染

当`unzip -l`时,从zip压缩文件中提取文件名列表。

linux

当我做的时候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" "

但我认为分隔符并不公正" "


阅读 548

收藏
2020-06-07

共1个答案

一尘不染

假设所有文件的名称中都没有空格:

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)}
'
2020-06-07