我曾经需要类似的东西来在一堆 zip 文件中查找类文件。这里是:
#!/bin/bash
function process() {
while read line; do
if [[ "$line" =~ ^Archive:\s*(.*) ]] ; then
ar="${BASH_REMATCH[1]}"
#echo "$ar"
else
if [[ "$line" =~ \s*([^ ]*abc\.jpg)$ ]] ; then
echo "${ar}: ${BASH_REMATCH[1]}"
fi
fi
done
}
find . -iname '*.zip' -exec unzip -l '{}' \; | process
Run Code Online (Sandbox Code Playgroud)
现在您只需要添加一行来提取文件并移动它们。我不确定你到底想做什么,所以我会把它留给你。