如何使用 awk 打印最后两列
我想要的只是打印最后两列。
All I want is the last two columns printed.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我想要的只是打印最后两列。
All I want is the last two columns printed.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
您可以使用变量
NF
,该变量设置为输入记录中的字段总数:这假设您至少有 2 个字段。
You can make use of variable
NF
which is set to the total number of fields in the input record:this assumes that you have at least 2 fields.
注意:这仅在至少存在两列时才有效。在只有一列的记录上,您将得到一个虚假的
"-1 column1"
Note: this works only if at least two columns exist. On records with one column you will get a spurious
"-1 column1"
@jim mcnamara:尝试在
NF
周围使用括号,即$(NF-1)
和$(NF)
而不是$ NF-1
和$NF
(适用于 FreeBSDawk
和gawk
的 Mac OS X 10.6.8)。@jim mcnamara: try using parentheses for around
NF
, i. e.$(NF-1)
and$(NF)
instead of$NF-1
and$NF
(works on Mac OS X 10.6.8 for FreeBSDawk
andgawk
).使用 gawk 会出现问题:
我刚刚将 gawk 放在 Solaris 10 M4000 上:
因此,gawk 是 $NF-1 与 $(NF-1) 问题的核心。下一个问题 POSIX 说什么?
per:
没有任何方向。不好。 gawk 表示减法,其他 awks 表示字段编号或减法。唔。
using gawk exhibits the problem:
I just put gawk on Solaris 10 M4000:
So, gawk is the cuplrit on the $NF-1 vs. $(NF-1) issue. Next question what does POSIX say?
per:
There is no direction one way or the other. Not good. gawk implies subtraction, other awks imply field number or subtraction. hmm.
尝试用这个
try with this
请尝试此操作以考虑所有可能的情况:
或
或
Please try this out to take into account all possible scenarios:
or
or
使用
NF>=2
和NF==1
通过:using
NF>=2
andNF==1
via: