如何使用 unix grep 和正则表达式打印字符串出现 2 次或更多次的行数

  • 本文关键字:字符串 grep unix 何使用 式打印 unix grep
  • 更新时间 :
  • 英文 :


我需要搜索一个.txt文件,只有当一个单词在一行中出现两次时。因此,如果我有短语:"我今天喂了我的猫,我的猫很高兴",它将返回 1,但前提是该词在同一行中出现两次。我需要整个文件的行数。我正在使用程序腻子在 unix 中执行此操作。

像这样的事情怎么样:

grep -e "cat.*cat" input | wc -l
grep "cat.*cat" input_file | wc -l

解释:

  • grep : 什么是 grep?
  • "cat.*cat" :在这种情况下,要搜索的模式:字面意思是cat,后跟.*,其中句点.表示"匹配任何字符",并且由星号*(0或更多)量化,因此它们一起表示"匹配任意数量的字符",然后是字面上的另一个cat
  • input_file下一个论点grep,为了"救猫"(不用担心"救猫"部分,傻书笑话=p)
  • |是 Unix 中的管道命令,它从 grep 获取stdout并将其馈送到下一个程序的stdin中,即......
  • wc -l - 调用"字数统计"程序并使用"行"选项计算行数。
在一个

awk命令中查找和计数

awk '/cat.*cat/ {a++} END {print a}' file

基本上:

cat.*cat

如果您只想匹配整个单词,则可能需要为单词边界(取决于工具的语法)添加锚点。

最新更新