MODIS批量重命名

时间:2014-07-19 12:15:45

标签: bash rename

我有一大堆MODIS文件,按年份命名如下。

MOD11B1.A2000065.h24v05.005.2007176161243.hdf

我想使用Linux shell或其他任何文件名

来重命名这些文件
MOD11B.AYYYY.MM.DD 

1 个答案:

答案 0 :(得分:1)

根据http://modis-atmos.gsfc.nasa.gov/products_filename.html,您的文件名格式为:

MOD11B1.A2000065.h24v05.005.2007176161243.hdf
MOD...  A.......
         YYYYDDD

这是一个简单的脚本(我认为):

#!/bin/bash
yyyymmdd () { date -d "$1-01-01 +$2 days -1 day" "+%Y.%m.%d"; }

for f in MOD*.hdf; do
    YYYY=${f:9:4}
    DDD=${f:13:3}

    OUT="${f/.*/}".A$(yyyymmdd $YYYY $DDD)

    mv "$f" "$OUT"
done

关键部分是从YYYYDDD转换为YYYY.MM.DD。我使用了基于之前答案的函数:https://superuser.com/a/232106/224101

否则,这是对MOD*.hdf文件的简单循环。