regex - 在一个文件中出现 Bash

标签 regex linux bash unix

我想计算文件中所有重复出现的次数。例如:

hellohello (this is counted)
hello (not conted)

我试过这段代码:

directory=`find ${dir} -type f`

for file in $directory
do

    o=`egrep 'hello{2,2}' $file`
done

但它不起作用,我不明白为什么。

最佳答案

参见 http://mywiki.wooledge.org/ParsingLs为什么for file in $(find ...)不好。

至于主要问题虽然意识到{2,2} (以及所有其他修饰符)适用于模式中最近的原子,并且字符本身就是一个原子,所以你写的是

h + e + l + l + o{2,2}

这不是你想要的。

你想要hello成为一个原子,所以组是:(hello){2,2} .

关于regex - 在一个文件中出现 Bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30877104/

相关文章:

java - 正则表达式仅允许使用数字,连字符,方括号,加号和空格

php - Twitter 正则表达式只有在还没有链接时

linux - 在命令提示符上将操作作为参数传递 (Linux)

linux - 如何在终端上顺序打开文件?

git - 使用 grep 排除箭头图案 "->"

带有通配符和隐藏文件的 Bash for 循环

python - 正则表达式替换Python中的列表理解

java - 如何从正则表达式中提取一个特定单词后的第一个单词

linux - 如何在 bash 上按文件类型将文件分类到文件夹中(使用 'file' 命令)?

linux - 对汇编中ADD指令或程序导出值的误解