如何使用awk从第4列打印到第n列,从第(n&x2B;1)列打印到最后一列?

如何使用awk从第4列打印到第n列,从第(n&x2B;1)列打印到最后一列?,awk,Awk,我有一个数据集,其中有119列由空格分隔,我喜欢选择列(3,7,11,…,47,51),(52,53,54,…,118119),并将它们打印到另一个文件中。我如何使用awk实现这一点 Input file c1 c2 c3...c119 Output file c3 c7 c11 ... c51 c52 c53 c54 ... c118 c119 感谢您的帮助{a=”“; {a=""; for (i=0 ;i<=12; i++) {a = a $(3+4 * i) " "

我有一个数据集,其中有119列由空格分隔,我喜欢选择列(3,7,11,…,47,51),(52,53,54,…,118119),并将它们打印到另一个文件中。我如何使用awk实现这一点

Input file 

c1 c2 c3...c119

Output file

c3 c7 c11 ... c51 c52 c53 c54 ... c118 c119 
感谢您的帮助

{a=”“;
{a=""; 
 for (i=0 ;i<=12; i++) {a = a  $(3+4 * i) " "};
 for (i=52 ;i<=119; i++) {a = a  $(i) " "};
 print a}  

对于(i=0;i
awk'{for(i=3;i这就是你要找的吗

awk '{s=""; for (i = 3; i <= 51; i+=4) {s = s $i " "}; for (i = 52; i <= 119; i++) {s = s $i " "}; print s}' inputfile

awk'{s=”“;for(i=3;i
awk'for(i=3;iIs it为每个输入记录打印一条输出记录,或为每个列打印一条记录?它将按列打印。似乎OP需要由一行中的所有列组成的输出文件(我猜),似乎您需要为下一条记录清空变量s
awk '{s=""; for (i = 3; i <= 51; i+=4) {s = s $i " "}; for (i = 52; i <= 119; i++) {s = s $i " "}; print s}' inputfile
awk 'for(i=3;i<=119;i+a) 
     {
     if (i<52)
     {
     printf "%s ",$i};
     a=4;
     }
     else
     {
     printf "%s ",$i};
     a=1;
     }
     }' file