파일에서 마지막 단어를 찾고 공백을 무시하는 방법

파일에서 마지막 단어를 찾고 공백을 무시하는 방법

단어 뒤에 빈 줄이 있어도 파일의 마지막 단어를 찾는 방법

사례

나는 마지막 단어를 찾기 위해 이것을 시도한다

tail -1  /tmp/requests.txt

하지만 출력이 없습니다

나는 다음을 시도한다

 awk 'END {print $NF}'   /tmp/requests.txt

하지만 출력이 없습니다

이 단어만 캡쳐해꼬리-6(단어의 파일 끝 앞에 6개의 빈 줄이 있기 때문입니다.

 tail -6  /tmp/requests.txt
 "IN_PROGRESS"

공백이 있거나 없는 경우 마지막 단어를 캡처하는 방법

기대되는 성과

 echo $Last_word
 IN_PROGRESS

답변1

그냥 맨 아래부터 읽고 "something"이 포함된 첫 번째 줄의 마지막 단어만 인쇄하세요.

tac file | awk 'NF{print $NF; exit}'

예를 들어:

$ cat -vet file     # note the spaces and tabs
hello$
bla ble bli$
   $
^I$
$ tac file | awk 'NF{print $NF; exit}'
bli

가 없으면 tac일반적으로 파일을 읽을 때와 동일한 논리를 사용하십시오.

awk 'NF{last=$NF} END{print last}' file

즉, 줄에 "무언가"가 있을 때마다 마지막 단어가 저장됩니다. 마지막으로 저장된 값을 인쇄합니다.

답변2

비어 있지 않은 마지막 줄의 마지막 단어를 추적하고 끝에 인쇄하십시오.

awk '/\S/{ s=$NF; } END{ print(s); }'

줄을 역순으로 인쇄하기 위해 전체 파일을 메모리에 보관할 필요가 없습니다.

답변3

sed -n '$p' example.txt | awk '{print $NF}'

그러면 파일의 마지막 줄을 가져오고 마지막 줄의 마지막 열이 표시됩니다.

관련 정보