単語の後に空白行があってもファイルの最後の単語を見つける方法
ケース
私は最後の単語を見つけるためにこれを試みます
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}'
これにより、ファイルの最後の行がインポートされ、最後の行の最後の列が表示されます。