我有一个像下面这样的 zip 实现
$ unzip -l 5124.zip
Archive: 5124.zip
Length Date Time Name
--------- ---------- ----- ----
0 01-13-2021 09:22 u/
0 01-13-2021 09:22 u/MyCom/
0 01-13-2021 09:22 u/MyCom/UNX/
0 01-13-2021 09:22 u/MyCom/UNX/scripts/
0 01-13-2021 09:22 u/MyCom/UNX/scripts/SYNC/
0 01-13-2021 09:22 u/MyCom/UNX/scripts/SYNC/sql/
48704 01-13-2021 01:50 u/MyCom/UNX/scripts/SYNC/sql/Load.sql
41872 01-13-2021 01:00 u/MyCom/UNX/scripts/SYNC/sql/Update1.sql
--------- -------
90576 8 files
我只想获取存档中的文件名,而忽略在上述情况下的其余文件名
/u/MyCom/UNX/scripts/SYNC/sql/Load.sql
/u/MyCom/UNX/scripts/SYNC/sql/Update1.sql
注意:我需要/
的输出中缺少前面的内容unzip
/u/MyCom/UNX/scripts/SYNC/sql/Load.sql
/u/MyCom/UNX/scripts/SYNC/sql/Update1.sql
并不是
u/MyCom/UNX/scripts/SYNC/sql/Load.sql
u/MyCom/UNX/scripts/SYNC/sql/Update1.sql
从任何给定的 zip 获取此信息的任何好方法?
您可以使用zipinfo -1
列出文件路径并sed
删除以 a 结尾的路径,/
并在每行前面加上前缀/
:
$ zipinfo -1 5124.zip | sed '/\/$/d;s/^/\//'
/u/MyCom/UNX/scripts/SYNC/sql/Load.sql
/u/MyCom/UNX/scripts/SYNC/sql/Update1.sql
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句