如何用BASH单行命令统计tweet中含精确匹配单词play的唯一用户数量
问题解决方案
原命令错误点
- 未单独提取用户字段,直接对「用户+推文」整行去重,导致同一用户的不同推文会被判定为不同条目
- 缺少最终统计去重后用户总数的步骤
- 未适配CSV逗号后带空格的分隔格式,字段拆分逻辑不够严谨
正确单行BASH命令
awk -F ', ' 'NR>1 && $3 ~ /\<play\>/ {print $2}' Dataset.txt | sort -u | wc -l
命令逻辑说明
-F ', ':指定字段分隔符为「逗号+空格」,匹配当前CSV的格式,精准拆分出年份、用户、推文三个字段NR>1:跳过第一行表头,避免无效数据干扰$3 ~ /\<play\>/:仅匹配推文字段(第三个字段)中包含独立单词play的行,\<和\>是正则词边界标识,不会命中playing这类包含play的派生词print $2:输出匹配行的用户名字段sort -u:对输出的用户名排序并去重,保留唯一用户wc -l:统计去重后的用户行数,最终输出结果为2
内容的提问来源于stack exchange,提问作者homies
相关产品推荐
相关产品推荐

