正如我在 awk 中所知道的,$1 和 $2 指的是文件的第一个和第二个字段。但是可以使用 $1 和 $2 来引用变量的第一个和第二个字段.. 这样如果 session=5 存储在一个变量中。然后我想让 $1 指代 'session' 和 $2 指 '5' 。谢谢
输入文件
session=123
process=90
customer=145
session=123
customer=198
process=90
代码
awk '$1 ~ /^Session|^CustomerId/' hi|xargs -L 1 -I name '{if (!($1 SUBSEP $2 in a)) {ids[$1]++; a[$1, $2]}} END {for (id in ids) {print "Count of unique", id, " " ids[id]}}'
细节
我将传递我从第一个得到的输出并通过 xargs 管道它,我在 xargs 的“name”变量中读取行。现在我的 $1 应该对应于 xargs 的第一个字段,这是我的查询
输出
Count of unique sessions=2
Count of unique customer=2