여러 필드 인쇄

여러 필드 인쇄

한 줄 명령으로 여러 필드를 인쇄하는 방법이 있습니까?

$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

관련 정보