bash - shell : 使用 grep 在列中出现的字符串次数
问题描述
我的数据文件是:
name,age,favourite_person
Adam,19,Helen Keller
Alex,18,Joe Biden
Kyle,18,George Washington
Mary,20,Marie Curie
Jade,16,Marie Kondo
我想查找“Marie”在“favourite_person”列(第 3 列)中出现的次数。我现在的代码是 grep -R "Marie" file | wc -l
,但这会检查整个文件中的“Marie”这个词。我只希望它在 favourite_person 列中进行检查。在这种情况下我应该添加什么?
解决方案
您可以按如下方式使用 awk:
awk 'BEGIN { FS = "," } {if ($3 ~ "Marie") { count++ }} END { print count }' file
BEGIN { FS = "," }
设置,
为字段分隔符,{ if ... }
部分内容类似于“如果第三个字段与“Marie”匹配,则增加变量count
“,END { print count }
最后打印count
。
推荐阅读
- c# - RegionManager 在第二个 Shell 的子级中为空
- java - 在性能测试期间在服务器上运行时,Java XSLT 转换非常慢
- flutter - Flutter Web:StreamBuilder 浏览器调整大小和重建
- maven - AEM 项目发布版本
- mysql - MySQL通过存储过程从带有LIMIT的更新查询中获取行数据
- maptitude - 我可以使用什么方法(Maptitude 是我的软件)来查找区域内每条道路的总里程?
- amazon-web-services - SQS fifo 触发器调用 Lambda 函数(1 条消息 - 1 次调用)
- typescript - 动作创建者文档评论未显示
- node.js - 迁移到节点 v14 后 express.js 出现语法错误,将文件更改为 mjs 类型并导入语句
- c - 我在 Arduino 网络服务器中显示浮点变量时遇到问题