Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
大数据迭代的Awk_Awk_Iteration_Arcgis_Bigdata - Fatal编程技术网

大数据迭代的Awk

大数据迭代的Awk,awk,iteration,arcgis,bigdata,Awk,Iteration,Arcgis,Bigdata,我创建了一个awk脚本,它使用while循环来迭代一个大型ascii文本文件,并以设置的增量写入其内容。ascii文本文件是一个DEM文件,通常由整数或浮点值组成 此脚本已用于其他大型ascii文件,但对于某些文件,它会将所有内容写入新文件,而不是以设置的增量写入。有什么建议可以提高代码的效率吗 #!/bin/csh set Index = 0 set filename = 320000 set yorig = -1003 set cellsize = 0.00025 set LineCou

我创建了一个awk脚本,它使用while循环来迭代一个大型ascii文本文件,并以设置的增量写入其内容。ascii文本文件是一个DEM文件,通常由整数或浮点值组成

此脚本已用于其他大型ascii文件,但对于某些文件,它会将所有内容写入新文件,而不是以设置的增量写入。有什么建议可以提高代码的效率吗

#!/bin/csh
set Index = 0 
set filename = 320000
set  yorig = -1003
set cellsize = 0.00025
set LineCounter = 0

while($Index <= $filename )
echo $Index
awk -v i="$Index" -v y="$yorig" -v rows="$filename" -v delta="$cellsize" -v    linecount="$LineCounter" 'BEGIN{printf("ncols 136000\nnrows 320000\nxllcorner 122\nyllcorner %.5f\ncellsize 0.00025\nNODATA_value -9999\n", y+rows*delta-(i+1)*delta);}; {if(NR > 6 && NR <= 4000+i) print $0;}' ./Large_ASCII_FIle.txt >!   $Index"_Increment.txt"
@ Index += 4000
end


Input Data looks like the following:
ncols         136000;
nrows         320000;
xllcorner     122;
yllcorner     -1003;
cellsize      0.00025;
NODATA_value  -9999;
707 707 707 706 706 706 706 706 707 706 706 706 706 706 707 707 708 709 710   711 712 712 712 711 711 711 711 711 711 711 711 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 709 709 709 710 710 709 709 709 709 709 709 710 710 710 709 709 709 709 709 709 708 708 707 707 707 706 706 706 705 705 704 704 704 704 704 704 704 704 704 703 703 703 703 703 703 703 703 703 703 703 702 702 702 702 702 702 702 702 702 702 701 701 701 701 701 701 701 701 701 701 701 701 701 701 700 700 700 700 701 700 701 701 701 700 700 700 700 700 700 700 700

Desired Output Would be:
ncols        136000;
nrows         320000;
xllcorner     122;
yllcorner     -934;
cellsize      0.00025;
NODATA_value  -9999;
707 707 707 706 706 706 706 706 707 706 706 706 706 706 707 707 708 709 710 711 712 712 712 711 711 711 711 711 711 711 711 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 709 709 709 710 710 709 709 709 709 709 709 710 710 710 709 709 709 709 709 709 708 708 707 707 707 706 706 706 705 705 704 704 704 704 704 704 704 704 704 703 703 703 703 703 703 703 703 703 703 703 702 702 702 702 702 702 702 702 702 702 701 701 701 701 701 701 701 701 701 701 701 701 701 701 700 700 700 700 701 700 701 701 701 700 700 700 700 700 700 700 700 
#/bin/csh
设置索引=0
设置文件名=320000
设置yorig=-1003
设置cellsize=0.00025
设置LineCounter=0
而($Index!$Index“\u Increment.txt”
@指数+=4000
结束
输入数据如下所示:
NCOL136000;
32万尼泊尔卢比;
xllcorner 122;
1-1003;
细胞大小0.00025;
NODATA_值-9999;
707 707 707 706 706 706 706 706 707 706 706 706 706 706 707 707 708 709 710   711 712 712 712 711 711 711 711 711 711 711 711 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 709 709 709 710 710 709 709 709 709 709 709 710 710 710 709 709 709 709 709 709 708 708 707 707 707 706 706 706 705 705 704 704 704 704 704 704 704 704 704 703 703 703 703 703 703 703 703 703 703 703 702 702 702 702 702 702 702 702 702 702 701 701 701 701 701 701 701 701 701 701 701 701 701 701 700 700 700 700 701 700 701 701 701 700 700 700 700 700 700 700 700
预期的产出将是:
NCOL136000;
32万尼泊尔卢比;
xllcorner 122;
-934人;
细胞大小0.00025;
NODATA_值-9999;
707 707 707 706 706 706 706 706 707 706 706 706 706 706 707 707 708 709 710 711 712 712 712 711 711 711 711 711 711 711 711 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 710 709 709 709 710 710 709 709 709 709 709 709 710 710 710 709 709 709 709 709 709 708 708 707 707 707 706 706 706 705 705 704 704 704 704 704 704 704 704 704 703 703 703 703 703 703 703 703 703 703 703 702 702 702 702 702 702 702 702 702 702 701 701 701 701 701 701 701 701 701 701 701 701 701 701 700 700 700 700 701 700 701 701 701 700 700 700 700 700 700 700 700 

据我所知,您的基本意图是将一个大文件拆分为多个部分。您可以使用
awk
执行此操作,如下所示:

awk 'NR % 4000 == 1 { filename = "increment_" NR } NR > 6 { print > filename }'

设置文件名后打印标题数据。

这不是使用while循环的awk脚本,而是使用while循环迭代调用awk的CSH脚本。不要编写CSH脚本(google),也不要使用shell lops来操作文本(请参阅)。您的问题应包括简明、可测试的样本输入和预期输出,以便我们可以帮助您以正确的方式完成任何工作。