我有这个文件
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)}'
如果你想打印最后一个单词,如果它是正十进制整数,那么它就变成:
awk '$NF ~ /^[0-9]+$/ {print $NF}'
(替换$NF
为$(NF-1)
前一个)。
如果要在每行中打印最右边的十进制数字序列,则:
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