打印第n参数到最后一个参数
- 文本的NF不等,即字段长度不固定,想截取从$3到$NF
1.使用for循环,第3行之前都为空,打印第3行之后的内容;
[root@localhost ~]# echo "1 2 3 4 5" | awk '{for(i=1;i<3;i++)$i="";print}' 3 4 5
2.可以使用技巧,让第1,2行为空,打印之后的内容;
[root@localhost ~]#echo "1 2 3 4 5" | awk '{$1=$2="";print}' 3 4 5
3.使第1,2行为空,打印之后的内容;
[root@localhost ~]#echo "1 2 3 4 5" | awk '{$1=$2=""}1'
4.如果分隔符比较标准的话(使用是统一的标准分隔符),还可以使用cut命令
[root@localhost ~]#echo "1 2 3 4 5" | cut -d" " -f3-
其实第2种跟第3种是一样的,只是换用了一些技巧,省略print而已;总的来说,
遇到这类情况使用cut会更好一点;使用cut会少去第一个空格,因为awk的默认分隔符为空格(打印的结果前会有空格)。
-----------------------------------------------------------------------------------------------------
参考链接:
https://www.cnblogs.com/irockcode/p/7389571.html
-----------------------------------------------------------------------------------------------------