计算一行中逗号分隔的字符

dov*_*vah 5 sed awk

如何使用 awk 或 sed 计算在文件的给定列(tab_delimited)中用逗号分隔的元素数量?

例子:

AC    1,23,5
DC    2,8,89
Run Code Online (Sandbox Code Playgroud)

会返回:

AC    3
DC    3
Run Code Online (Sandbox Code Playgroud)

max*_*zig 7

$ awk -F '[\t,]' '{print $1, NF-1}' some_file
Run Code Online (Sandbox Code Playgroud)

在哪里

  • -F 设置字段分隔符,即制表符或逗号
  • $1 引用第一个字段
  • NF 是一个内置变量,包含记录中的字段数
  • awk 语句为每条记录(即每行)执行