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

时间:2017-11-05 17:00:11

标签: regex linux bash zip extract

我在目录中有~5530个zip文件,这些文件都以某种样式命名。 E.g:

  

monatswerte_RR_02076_19370101_19701230_hist.zip

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

Please enter how many levels of Pascal's Triangle you would like to see: 6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

Process returned 0 (0x0)   execution time : 2.264 s
Press any key to continue.

ids.txt的一些行:

  

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

1 个答案:

答案 0 :(得分:1)

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