使用gsub中的awk变量来计算行中的出现次数



我不确定这里做错了什么

echo "T T A T T T" | awk '{print $4"t"gsub(/$4/,"")}'
T   0

我正在尝试得到这个结果

echo "T T A T T T" | awk '{print $4"t"gsub(/T/,"")}'
T   5

感谢

从注释开始,您不希望像使用常量正则表达式那样将$4包含在/../中。('$'有特殊含义(您只想使用$4,因此它将被视为动态正则表达式,例如

awk '{print $4"t"gsub($4,"")}'

有关使用动态正则表达式的讨论,请参阅GNU Awk用户指南-3.6使用动态正则正则表达式

示例使用/输出

然后,您可以获得所需的输出,例如

$ echo "T T A T T T" | awk '{print $4"t"gsub($4,"")}'
T       5

最新更新