我有很多.grd 和.txt 格式的数据,例如:
20121201.grd
20121202.grd
..
..
..
201121231.grd
并且:
Result.2012.1201.txt
Result.2012.1202.txt
::
::
Result.2012.12.31.txt
我已经尝试使用以下命令来匹配 .grd 数据和 .txt 数据。我还将 .grd 数据和 .txt 数据放在同一个文件夹中。
for n in *.txt
do echo "processing $n"
grdtrack "${n%.*}.txt" -G2012*.grd > "${n%.*}h.txt"
done
但不幸的是该命令不起作用。
结果如下:
processing Result.2012.1205.txt
grdtrack: Could not find file [2012*.grd]
有谁能帮助我吗?
答案1
您对要做什么不太清楚(例如,您是否尝试处理 2012.mm.dd 或 2012.mmdd 格式的文件?(您已列出)。
您可以使用 {$n:x:y} 在 bash 中“划分”一个字符串,其中 x 是起始位置,y 是字符数,因此像这样的操作[根据您的使用情况进行调整]应该可以工作:
for n in *.txt
do
echo "Processing $n"
grdtrack $n -G{$n:0:4}{$n:5:4}.grd > {$n}h.txt
done
这将处理 txt 文件并解析参数 -G20121202.grd,将输出重定向到新的文本文件。
看这里有关 bash 中的字符串操作的更多信息。