awk打印第n个参数到最后一个

打印第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

-----------------------------------------------------------------------------------------------------

posted @ 2022-06-26 19:36  非然踏古忘今焉  阅读(560)  评论(0编辑  收藏  举报