awk 返回的字段数
有没有办法让 awk 返回满足字段分隔符条件的字段数?例如,文件包含:
a b c d
所以,awk -F=' ' |
Is there a way to get awk
to return the number of fields that meet a field-separator criteria? Say, for instance, the file contains:
a b c d
So, awk -F=' ' | <something>
should return 4.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
NF
变量设置为输入记录中的字段总数。所以:将显示
注意,但是:
将显示:
希望这有帮助,祝 awking 快乐
The
NF
variable is set to the total number of fields in the input record. So:will display
Note, however, that:
will display:
Hope this helps, and happy awking
NF
给出给定记录的字段数:NF
gives the number of fields for a given record:如果您想知道多行内容中所有字段数量的集合,您可以运行:
X
在标准输出中输出内容的命令:cat
,echo
等。 示例:使用 file.txt:
命令
cat file.txt | awk '{print NF}' |排序 -n | uniq
将打印:并使用 file2.txt:
命令
cat file2.txt | awk '{print NF}' |排序 -n | uniq
将打印:If you would like to know the set of all the numbers of fields in a multiline content you can run:
being
X
a command that outputs content in the standard output:cat
,echo
, etc. Example:With file.txt:
The command
cat file.txt | awk '{print NF}' | sort -n | uniq
will print:And with file2.txt:
The command
cat file2.txt | awk '{print NF}' | sort -n | uniq
will print:FreeBSD 上的 awk(1) 无法识别
--field-分隔符
。使用-v
代替:它是 可移植的 POSIX方式 定义字段分隔符。
awk(1) on FreeBSD does not recognize
--field-separator
. Use-v
instead:It is a portable, POSIX way to define the field separator.