You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solaris环境下筛选Zip待删文件列表并重构压缩包的技术咨询

SunOS 5.11非全局区域下Zip包文件筛选与重构完整方案

已完成的第一步:生成初始待删除列表

已通过以下命令筛选出包含deployfiles且不区分大小写排除DEV的文件,保存到待删除列表:

unzip -l -q /tmp/package-391.zip | awk '{ print $4 }' | sed -n '3,$p' | grep -v '^$' | grep deployfiles | grep -v -i DEV > /tmp/to_delete.txt

生成的待删除文件:

myapp-configuration/src/config/perf/deployfiles/acid.properties
myapp-configuration/src/config/prod/deployfiles/acid.properties
myapp-configuration/src/config/qa/deployfiles/acid.properties
myapp-configuration/src/config/uat/deployfiles/acid.properties

第二步:提取重复文件名的路径并追加到待删除列表

剩余文件中bras.war出现两次,需删除非保留的myapp-configuration/src/config/dev/bras.war,执行以下命令完成筛选:

# 1. 获取Zip包内所有文件列表
unzip -l -q /tmp/package-391.zip | awk '{ print $4 }' | sed -n '3,$p' | grep -v '^$' > /tmp/all_files.txt

# 2. 找出重复出现的文件名
awk -F/ '{print $NF}' /tmp/all_files.txt | sort | uniq -d > /tmp/duplicate_filenames.txt

# 3. 筛选出重复文件名对应的路径,排除需要保留的myapp/src/stage/bras.war,追加到待删除列表
grep -f /tmp/duplicate_filenames.txt /tmp/all_files.txt | grep -v 'myapp/src/stage/bras.war' >> /tmp/to_delete.txt

第三步:重构目标Zip包

提供两种方式完成重构,按需选择:

方式一:直接删除Zip包内待删除文件(高效)

先备份原包,再使用zip -d命令删除指定文件:

# 备份原压缩包
cp /tmp/package-391.zip /tmp/package-391_backup.zip

# 删除待删除列表中的文件
zip -d /tmp/package-391.zip $(cat /tmp/to_delete.txt)

方式二:提取保留文件重新打包(更稳妥)

如果担心删除操作出错,可先提取需要保留的文件,再重新打包:

# 创建临时目录用于提取文件
mkdir -p /tmp/tmp_extract

# 提取需要保留的两个文件
unzip -q /tmp/package-391.zip "myapp/src/stage/bras.war" "myapp-configuration/src/config/dev/deployfiles/acid.properties" -d /tmp/tmp_extract

# 重新打包成目标Zip包
cd /tmp/tmp_extract
zip -r /tmp/package-391_final.zip .
cd /tmp

# 清理临时文件
rm -rf /tmp/tmp_extract /tmp/to_delete.txt /tmp/all_files.txt /tmp/duplicate_filenames.txt

最终得到的Zip包仅包含myapp/src/stage/bras.war和myapp-configuration/src/config/dev/deployfiles/acid.properties两个文件。

内容的提问来源于stack exchange,提问作者Ashar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 07:33:38