regex - 在同一行中匹配模式 n 次的行

标签 regex vim sed awk grep

我有一个文件,我需要过滤有(或没有)N 个模式出现的行。
即,如果我的模式是字母 o 并且我要匹配字母 o 恰好出现 4 次的行,则表达式应匹配以下示例行中的第一行,但不匹配其他行:

foo foo  
foo  
foo foo foo   

我可以用 vim、sed、awk 或任何其他工具中的正则表达式来完成。
我用谷歌搜索过,没有找到做过类似事情的人。
可能会做一个脚本或类似的东西来解析每一行。
有没有人做过类似的事情?

谢谢

最佳答案

Perl 单行:

perl -ne 'print if(tr/o/o/ == 4)' foo_file

关于regex - 在同一行中匹配模式 n 次的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6005794/

相关文章:

regex - 按文本文件中的特定模式对行和列重新排序

linux - 减少文本文件第四列中的小数

linux - 如何从 java -version 中删除第 3 行?

ruby - Ruby RegExp 中的可选命名组

javascript - 从成功的正则表达式中获取字符串?

python - 如何 'loosely' 检查字符串是否与列表中的另一个字符串匹配

vim - 在指定的拆分中从.netrw打开文件

Vim:创建需要移动的自定义命令

vim - 如何为 vim 设置 cscope?

linux - 在 Linux 中将相关数据行分组到单个列中