web-dev-qa-db-ja.com

ファイル内の最後の単語を見つけて空のスペースを無視する方法

wordの後に空の行がある場合でもファイル内の最後のWordを見つける方法

ケース

最後の単語を見つけるためにこれを試しました

tail -1  /tmp/requests.txt

ただし出力なし

私は次のアプローチを試します

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

ただし出力なし

私はWordをtail -6(Wordはファイルの終わりの前に6つの空の行だったので)によってのみキャプチャします

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

空きスペースがあるかどうかにかかわらず、最後の単語をキャプチャする方法は何ですか

推測される結果

 echo $Last_Word
 IN_PROGRESS
4
yael

下から読み始めて、少なくとも「何か」を含む最初の行の最後の単語を印刷します。

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

つまり、行に「何か」があるときはいつでも最後の単語を保存します。最後に、保存された値を出力します。

7
fedorqui

空でない最後の行の最後の単語を追跡し、最後に印刷します。

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

行を逆の順序で印刷するために、ファイル全体をメモリに保持する必要はありません。

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

これにより、ファイルの最後の行が取得され、最後の行の最後の列が表示されます。

0