我需要帮助来编写Linux脚本来查找指定文件夹中的所有*.zip
文件。然后,搜索" _xx.xml
" zip文件中的文件。最后移动包含" *_xx.xml
"的这些zip文件。到另一个目录。
答案 0 :(得分:4)
试试这个:
FOLDER='/path/to/somewhere'
ANOTHER='/path/to/another'
find "$FOLDER" -type f -iname '*.zip' | while read FILE; do
unzip -lqq "$FILE" '*_xx.xml' >/dev/null && echo mv -v "$FILE" "$ANOTHER"/
done
当您找到它时,请删除echo
。
答案 1 :(得分:0)
查找并迭代文件夹中的所有zip文件:
for z in *.zip; do
# do something
done
显示zip文件的内容而不提取它
unzip -l "$z"
grep zip文件的内容
unzip -l "$z" | grep '_xx\.xml'
如果此条件的计算结果为true,请使用mv
mv "$z" new_dir
现在您需要做的就是将这些步骤放在一起;)。