Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/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 在数组中存储前2个行块中的每一个_Awk - Fatal编程技术网

Awk 在数组中存储前2个行块中的每一个

Awk 在数组中存储前2个行块中的每一个,awk,Awk,我已经用Google Sheet对它进行了分类,但这需要很长时间,所以我想,要用awk来解决它 input.txt Column 1 2 2 2 4 4 Column 2 562 564 119 215 12 Range 13455,13457 13161 11409 13285,13277-13269 11409 我试过这个脚本,所以它会重新排列值 awk'/Column 1/'RS=input.txt (如中所述) 但似乎只需要一条匹配的线路 它应该按各自的行排序 Result: 5

我已经用Google Sheet对它进行了分类,但这需要很长时间,所以我想,要用awk来解决它

input.txt

Column 1
2
2
2
4
4

Column 2
562
564
119
215
12

Range
13455,13457
13161
11409
13285,13277-13269
11409

我试过这个脚本,所以它会重新排列值

awk'/Column 1/'RS=input.txt
(如中所述)

但似乎只需要一条匹配的线路

它应该按各自的行排序

Result:
562Value2@13455
562Value2@13457
564Value2@13161
119Value2@11409
215Value4@13285
215Value4@13277-13269
12Value4@11409
应该是这样的,“逗号”将重复
第1列和
第2列中的值
等等:


idk排序与它有什么关系,但似乎这就是您要寻找的:

$ cat tst.awk
BEGIN { FS=","; recNr=1; print "Result:" }
!NF { ++recNr; lineNr=0; next }
{ ++lineNr }
lineNr == 1 { next }
recNr == 1  { a[lineNr] = $0 }
recNr == 2  { b[lineNr] = $0 }
recNr == 3  {
    for (i=1; i<=NF; i++) {
        print b[lineNr] "Value" a[lineNr] "@" $i
    }
}

$ awk -f tst.awk input.txt
Result:
562Value2@13455
562Value2@13457
564Value2@13161
119Value2@11409
215Value4@13285
215Value4@13277-13269
12Value4@11409
$cat tst.awk
开始{FS=“,”recNr=1;打印“结果:”}
!NF{++recNr;lineNr=0;next}
{++lineNr}
lineNr==1{next}
recNr==1{a[lineNr]=$0}
recNr==2{b[lineNr]=$0}
recNr==3{

对于(i=1;ibtw,这个方法的名称是什么?我需要对它有更多的了解。对于这个古怪的问题,很抱歉,它没有特定的名称,我只存储了前两行中的每一行(记录)在数组中,然后在读取第三条记录时连接并打印它们。如果输入没有空格,我是否需要放置分隔符?这样我就可以区分列。等等。通过使用RSI编写脚本来解析您发布的输入。如果输入与您发布的不一样,那么当然,您需要更改脚本解析输入的实际外观。如果没有看到该输入,我不知道解析该输入的脚本会是什么样子。
$ cat tst.awk
BEGIN { FS=","; recNr=1; print "Result:" }
!NF { ++recNr; lineNr=0; next }
{ ++lineNr }
lineNr == 1 { next }
recNr == 1  { a[lineNr] = $0 }
recNr == 2  { b[lineNr] = $0 }
recNr == 3  {
    for (i=1; i<=NF; i++) {
        print b[lineNr] "Value" a[lineNr] "@" $i
    }
}

$ awk -f tst.awk input.txt
Result:
562Value2@13455
562Value2@13457
564Value2@13161
119Value2@11409
215Value4@13285
215Value4@13277-13269
12Value4@11409