如何使用awk从第4列打印到第n列,从第(n&x2B;1)列打印到最后一列?
我有一个数据集,其中有119列由空格分隔,我喜欢选择列(3,7,11,…,47,51),(52,53,54,…,118119),并将它们打印到另一个文件中。我如何使用awk实现这一点如何使用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) " "
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;iawk'{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;iawk'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