我有几个这样的文件:
2020.001.00.01.pcc1_TBTZ_TBTZ_1.0-3.0.sac
2020.001.03.04.pcc1_TBTZ_TBTZ_1.0-3.0.sac
2020.002.00.01.pcc1_TBTZ_TBTZ_1.0-3.0.sac
2020.003.00.01.pcc1_TBTZ_TBTZ_1.0-3.0.sac
2020.004.00.01.pcc1_TBTZ_TBTZ_1.0-3.0.sac
2020.004.05.06.pcc1_TBTZ_TBTZ_1.0-3.0.sac
2020.005.00.01.pcc1_TBTZ_TBTZ_1.0-3.0.sac
2020.006.00.01.pcc1_TBTZ_TBTZ_1.0-3.0.sac
...
2020.366.00.01.pcc1_TBTZ_TBTZ_1.0-3.0.sac
文件是 year.day.hour1.hour2... 重要的参数是年和日。一天从 001 到 366(或 365)。
我想要的是像这样组织我的文件(文件夹和文件)。因此,创建文件夹并将相应的文件移动到其中:
2020.001.003 - 2020.001.00.01.pcc1_TBTZ_TBTZ_1.0-3.0.sac
2020.001.03.04.pcc1_TBTZ_TBTZ_1.0-3.0.sac
2020.002.00.01.pcc1_TBTZ_TBTZ_1.0-3.0.sac
2020.003.00.01.pcc1_TBTZ_TBTZ_1.0-3.0.sac
2020.004.006 - 2020.004.00.01.pcc1_TBTZ_TBTZ_1.0-3.0.sac
2020.004.05.06.pcc1_TBTZ_TBTZ_1.0-3.0.sac
2020.005.00.01.pcc1_TBTZ_TBTZ_1.0-3.0.sac
2020.006.00.01.pcc1_TBTZ_TBTZ_1.0-3.0.sac
依此类推,直到在第 366 天完成文件
我做了什么(这不像我想要的那样工作):
for file in *.sac
do
year=`echo "$file" | awk -F"." '{print $1}'`
day=`echo "$file" | awk -F"." '{print $2}'`
dayi=$day
dayf="366"
#
# Moving every three day files
delta=2
x1=$dayi
x2=$(echo "$x1+$delta" | bc)
if [ $x1 -lt $x2 ]
then
echo $x1 $x2
dir=$(echo "$year"."$x1"."$x2")
mkdir $dir
x1=$(( x1+3))
x2=$(( x1+delta))
fi
done
结果,代码正在创建如下文件夹:
2020.001.3
2020.002.4
2020.003.5
...
基本上它是在创建我不需要的文件夹。另外我仍然不知道如何将文件移动到文件夹中。
感谢您的帮助。