【发布时间】:2014-08-25 17:00:50
【问题描述】:
具有相同名称grid_200001.grb2.nc 的多个文件只有一个组件更改,即月份grid_200010.grb2.nc。我想同时使用它们作为输入文件
我希望实现的一个例子是
fname="grid_"
year="2010"
month="01 02 03 04 05 06 07 08 09 10"
ext="grb2"
end="nc"
for((y=$year;y<=$year;y++));
do
for m in $month
do
ifile=$fname$y$m.$ext.$end
>>merge $ifile $ifile ... ofile
我想要的命令示例是
>> merge grid_200001.grb2.nc grid_200002.grb2.nc ....grid_200012.grb2.nc ofile
我希望我可以同时作为输入文件输入的所有文件
【问题讨论】:
-
如果你能提供更多关于你希望如何完成的细节会更好,因为我从你的解释中看到了许多可能的意图。最好不要猜测。一个伪代码也许就可以了。
-
@konsolebox 感谢您的建议,我重新编写了一个示例,希望现在更清楚我想要实现的目标
-
ofile将在每个循环中被覆盖。这是故意的吗?另外,请正确缩进您的合并命令,以便我们知道您要运行哪个循环体。为什么cat也不适用?cat ifile1 ifile2 > ofile -
@konsolebox 我正在使用一个特定的工具箱来合并我拥有的文件类型,不幸的是 cat 不是我可以使用的东西。目标是使用我上一步中的所有文件作为同时输入并产生一个最终输出(ofile)
-
我明白了。仍然令人困惑的是如何获得合并源以及要合并它们的位置。你能否修改你的循环体以使其完整(以
done结尾)和-indent- 它很好,所以我们会知道更多你打算如何合并它?正如您看到的ifile分配和您的merge命令与内部for循环对齐。