如何匹配.grd数据和.txt数据

如何匹配.grd数据和.txt数据

我有很多.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 中的字符串操作的更多信息。

相关内容