awk 返回的字段数

发布于 2024-10-30 20:23:01 字数 129 浏览 2 评论 0原文

有没有办法让 awk 返回满足字段分隔符条件的字段数?例如,文件包含:

a b c d

所以,awk -F=' ' |应返回 4。

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

听风念你 2024-11-06 20:23:01

NF 变量设置为输入记录中的字段总数。所以:

echo "a b c d" | awk --field-separator=" " "{ print NF }"

将显示

4

注意,但是:

echo -e "a b c d\na b" | awk --field-separator=" " "{ print NF }"

将显示:

4
2

希望这有帮助,祝 awking 快乐

The NF variable is set to the total number of fields in the input record. So:

echo "a b c d" | awk --field-separator=" " "{ print NF }"

will display

4

Note, however, that:

echo -e "a b c d\na b" | awk --field-separator=" " "{ print NF }"

will display:

4
2

Hope this helps, and happy awking

相思碎 2024-11-06 20:23:01

NF 给出给定记录的字段数:

[]$ echo "a b c d" | gawk '{print NF}'
4

NF gives the number of fields for a given record:

[]$ echo "a b c d" | gawk '{print NF}'
4
圈圈圆圆圈圈 2024-11-06 20:23:01

如果您想知道多行内容中所有字段数量的集合,您可以运行:

X | awk '{print NF}' | sort -n | uniq

X 在标准输出中输出内容的命令:catecho 等。 示例:

使用 file.txt:

a b
b c
c d
e t a
e u

命令 cat file.txt | awk '{print NF}' |排序 -n | uniq 将打印:

2
3

并使用 file2.txt:

a b
b c
c d
e u

命令 cat file2.txt | awk '{print NF}' |排序 -n | uniq 将打印:

2

If you would like to know the set of all the numbers of fields in a multiline content you can run:

X | awk '{print NF}' | sort -n | uniq

being X a command that outputs content in the standard output: cat, echo, etc. Example:

With file.txt:

a b
b c
c d
e t a
e u

The command cat file.txt | awk '{print NF}' | sort -n | uniq will print:

2
3

And with file2.txt:

a b
b c
c d
e u

The command cat file2.txt | awk '{print NF}' | sort -n | uniq will print:

2
夏至、离别 2024-11-06 20:23:01

FreeBSD 上的 awk(1) 无法识别 --field-分隔符。使用 -v 代替:

echo "a b c d" | awk -v FS=" " "{ print NF }"

它是 可移植的 POSIX方式 定义字段分隔符。

awk(1) on FreeBSD does not recognize --field-separator. Use -v instead:

echo "a b c d" | awk -v FS=" " "{ print NF }"

It is a portable, POSIX way to define the field separator.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文