打印多个字段

Eng*_*ng7 4 awk text-processing

有没有办法用单行命令打印多个字段?

我想打印 $3 到 $NF,我可以这样做:

awk -F[:] '{print $3,$4,$5 .... $NF}'
Run Code Online (Sandbox Code Playgroud)

然而,对于大量字段,它是不可行的,并且容易出错。

ter*_*don 7

我知道的唯一方法是遍历每个字段:

$ echo "a:b:c:d:e:f:g:h:i" | 
    awk -F":" '{for(i=3;i<=NF-1;i++){printf "%s ", $i}print $NF}'
c d e f g h i
Run Code Online (Sandbox Code Playgroud)

或者,您可以只使用perl

$ echo "a:b:c:d:e:f:g:h:i" | perl -F":" -lane 'print "@F[2..$#F]"'
c d e f g h i
Run Code Online (Sandbox Code Playgroud)

或者cut

$ echo "a:b:c:d:e:f:g:h:i" | cut -d: -f3- 
c:d:e:f:g:h:i
Run Code Online (Sandbox Code Playgroud)

或者sed

$ echo "a:b:c:d:e:f:g:h:i" | sed 's/\([^:]*:\)\{2\}//'
c:d:e:f:g:h:i
Run Code Online (Sandbox Code Playgroud)