한 줄 명령으로 여러 필드를 인쇄하는 방법이 있습니까?
$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