답변:
awk '{print $(NF-1)}'
작동해야합니다
awk -F '.' '{print $(NF-2)}'
$(..)
사용중인 쉘에 따라 서브 쉘에서 명령을 호출 하기 때문에 발생 합니다. $ (NF-1)
대신을 사용하여이 문제를 해결할 수 있습니다 $(NF-1)
.
당신은 결과에서 멀지 않았습니다! 이것은 그것을한다 :
awk '{NF--; print $NF}' file
이것은 하나의 필드 수를 감소시켜 $NF
이전의 두 번째 를 포함합니다.
몇 개의 숫자를 생성하고 5 개의 그룹으로 인쇄 해 봅시다 :
$ seq 12 | xargs -n5
1 2 3 4 5
6 7 8 9 10
11 12
각 줄에 두 번째를 인쇄 해 봅시다 :
$ seq 12 | xargs -n5 | awk '{NF--; print $NF}'
4
9
11
Chris Kannon의 awk 솔루션과 비슷한 Perl 솔루션 :
perl -lane 'print $F[$#F-1]' file
다음과 같은 명령 줄 옵션이 사용됩니다.
n
입력 파일의 모든 줄을 반복하고 모든 줄을 자동으로 인쇄하지는 않습니다.
l
처리하기 전에 줄 바꿈을 제거하고 나중에 다시 줄 바꿈
a
자동 분할 모드 – 입력 라인을 @F
어레이 로 분할합니다 . 공백으로 기본 분할
e
펄 코드를 실행
자동 @F
분할 배열은 인덱스 [0]에서 시작하는 반면 awk 필드는 $ 1로 시작합니다.
$#F
요소의 개수입니다@F
$F[-2]
NF
마지막 필드 인덱스, 마지막 필드$NF
의 값입니다