
[英]sed/awk/perl: find a regex, copy 5 columns of this line and paste to it at the beginning of the next lines
[英]how to copy and paste multiple columns with awk
我正在尝试将一堆文件中的第六列复制并粘贴到一个文件中,将每一列粘贴在单独的列中(而不是在一个列中一个接一个地粘贴。)
我试过这段代码,但它只能部分工作,因为它只复制和粘贴每列的 50 行,而不是 114 的总数
awk 'FNR==1{f++}{a[f,FNR]=$6}END{for(x=1;x<=FNR;x++){for(y=1;y<ARGC;y++)printf("%s ",a[y,x]);print ""}}' *.label > fname.txt
问题是END
子句中的FNR
是最后一个文件中的行数。 如果该文件比其他文件短,则只会打印该行数。 保存最大的文件长度,然后在for
循环中使用它将使您的代码按预期工作。
awk 'FNR==1{f++}{a[f,FNR]=$6; if (FNR > longest) {longest = FNR} }END{for(x=1; x <= longest ;x++){for(y=1;y<ARGC;y++)printf("%s ",a[y,x]);print ""}}' *.label > fname.txt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.