キューから特定の番号を取得します。

キューから特定の番号を取得します。

このファイルがあります。

    123 My name is Lorry I'm 29 years old 10000 45
    148 Name - Dan 20000 18
    895 My name is John Lazaro I like tennis 30000 63

一行の最後の数字を印刷したいです。

45
18
63

これは可能ですか?

アップデート:今印刷したいです。

10000
20000
30000

答え1

あなたの場合、最後の(スペースで区切られた)単語は数字です。常にそのような場合は、次のように最後の単語を印刷することで問題を単純化できます。

awk 'NF {print $NF}'

または

sed 's/.* //'

前の項目の場合:

awk 'NF >= 2 {print $(NF-1)}'

最後の単語を印刷したい場合は、正の10進整数であれば次のようになります。

awk '$NF ~ /^[0-9]+$/ {print $NF}'

(以前と交換$NF$(NF-1)

各行の右端にある10進数のシーケンスを印刷するには、次の手順を実行します。

sed -n 's/^/./;s/.*[^0-9]\([0-9]\{1,\}\).*/\1/p'

前の項目の場合:

sed -n 's/^/./;s/.*[^0-9]\([0-9]\{1,\}\)[^0-9].*[0-9].*/\1/p'

答え2

awk以下を使用して、最後のコミットを印刷してみることができます。

awk '{ print $NF }' file

最後のフィールドの横にある印刷フィールドの場合:

awk '{ print $(NF - 1) }' file

答え3

更新された出力が必要な人がいる場合は、次のように入力してください。

awk '{print $(NF-1)}' file.txt

関連情報