仅解压缩名称中包含与数字列表匹配的数字的某些文件

我有一个5530的zip文件,这个文件全部以某种风格命名。 例如:

monatswerte_RR_02076_19370101_19701230_hist.zip

现在我只想提取在5位数字模式的〜250行长列表(ids.txt)中的任何条目的“RR_”之后的5位数模式中匹配的文件。 我试图用bash脚本来解决这个问题,但是这不起作用:

for i in "ls"; do if [[$i ==*"cat ids.txt"*]]; then "unzip $i" fi; done 

ids.txt的一些行:

〜»cat Dokumente / Schneehydro / historical / ids.txt 00013 00050 00085 00107 00108 … 05691 05804 05874 15574

bash + grep解决方案:

 for f in *_RR_[0-9]*.zip; do num="${f#*_RR_}" num=${num:0:5} grep -qx "$num" ids.txt && unzip -q "$f" done