linux awk打印连续多列

https://www.cnblogs.com/timeisbiggestboss/p/8011614.html

问题:比如有一个文件是20列,你只要后面的18列,怎么打印。

方法:把第一列和第二列做空;用print打印
[wangjq@mgmt humandb]$ cat test
1 2 3 4 5 6 7 8 9 10
[wangjq@mgmt humandb]$ awk'{$1="";$2="";print $0}' test
  3 4 5 6 7 8 9 10
这种方法有个问题:就是第一列和第二列并没有消失,只是为空。

 
方法2:循环打印;用printf打印
[wangjq@mgmt humandb]$ cat test
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
[wangjq@mgmt humandb]$ awk'{for(i=3;i<11;i=i+1){printf $i" "};printf "
"}' test|head
3 4 5 6 7 8 9 10
3 4 5 6 7 8 9 10
  
print和printf两者的区别:
用print打印,会在打印结束后加上"
"
用printf打印,后面不会添加任何符号

原文地址:https://www.cnblogs.com/amize/p/15005961.html