打印多个字段

打印多个字段

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

我想将 $3 打印到 $NF,我可以像下面这样做:

awk -F[:] '{print $3,$4,$5 .... $NF}'

然而,对于大量字段来说这是不可行的,而且很容易出错。

答案1

我知道的唯一方法是循环每个字段:

$ 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

或者,您可以只使用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

或者cut

$ echo "a:b:c:d:e:f:g:h:i" | cut -d: -f3- 
c:d:e:f:g:h:i

或者sed

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

相关内容