このファイルがあります。
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