我每个月的每一天都有一个csv文件,并且csv文件具有全局点数据。我正在尝试根据纬度和纵向范围裁剪每个csv,然后导出这些csv。这是我一个月内尝试5天的方法。
for f in ./VBD_npp_d20190[1-5]*.csv; do
awk '{for(i=$4>=3.070359 && i=$4<=40.926137 && i=$5>=107.159444 && i=$5<=128.204291){printf "%s ",$i;} print ""}' "$f" > "$f".new;
done
此dd不起作用。 $4
和$5
列列出了纬度和经度。
请告知我要去哪里了。
谢谢
提洛
答案 0 :(得分:0)
试图用“ for”来做?有趣的方法,但不是我曾经想过的。对我们来说(一个或多个if语句)要容易得多
伪代码
{
if ($4 > minLat && $4 < maxLat && $5 > minLon && $5 < maxLon)
{
print
}
}
编辑:实际上看起来您可能只是打错了for
而不是if
吗? (并非完全如此,您将删除多余的i=
位并更改打印内容
for f in ./VBD_npp_d20190[1-5]*.csv; do
# TODO: Modify the print to use $4 (and $5 ?) instead of $i
awk '{if($4>=3.070359 && $4<=40.926137 && $5>=107.159444 && $5<=128.204291){printf "%s ",$i;} print ""}' "$f" > "$f".new;
done
答案 1 :(得分:0)
这终于奏效了-
对于./VBD_npp_d201901*_global*.csv中的i;执行o = basename $i global_noaa_ops_v23.csv
china_noaa_ops_v23.csv;头-1 $ i> $ o; awk -F,'{if($ 4> = 3.07 && $ 4 <= 40.93 && $ 5> = 107.16 && $ 5 <= 128.20)print;}'$ i >> $ o; done