如果我想要打印,比如第四列,直到第十列,我可以使用:
awk '{for( i=4; i<=10; i++ ){printf( "%s ", $i )}; printf( "\n"); }
但是,如果我想打印第1,3列,然后是4-10,然后是12,该怎么办?
答案 0 :(得分:2)
awk 解决方案:
awk '{ for(i=1;i<=12;i++) if(i!~/^(2|11)$/) printf "%s ",$i; print "" }' file
if(i!~/^(2|11)$/)
- 确保它不是第2或第11个字段。您可以将交替组(2|11|...)
扩展为应跳过的多个字段编号答案 1 :(得分:1)
请尝试以下操作并告诉我这是否有帮助。
awk '{printf("%s %s",$1,$3);for( i=4; i<=10; i++ ){printf( "%s ", $i )}; printf(" %s\n",$12);}' Input_file