繁体   English   中英

如何使用awk复制和粘贴多列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM