![在所有 php 文件中查找字符数超过 50 个的单词](https://linux22.com/image/1400233/%E5%9C%A8%E6%89%80%E6%9C%89%20php%20%E6%96%87%E4%BB%B6%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%AD%97%E7%AC%A6%E6%95%B0%E8%B6%85%E8%BF%87%2050%20%E4%B8%AA%E7%9A%84%E5%8D%95%E8%AF%8D.png)
我尝试使用 find 与 grep 组合来查找我的 Web 服务器中包含长度超过 50 个字符的单词(空格以外的任意字符序列)的所有 php 文件。
我有这个基础:
find . -name '*.php' -exec fgrep -q '.{50}' {} \; -print
但并没有像预期的那样工作。
谢谢
答案1
.
代表除换行符之外的所有内容,包括空格和制表符。这就是正则表达式将匹配长度超过 50 个字符的行的原因。
要匹配长度至少为 50 个字符的单词,你可以使用以下命令:
[^\s]{50}
[^\s]
匹配除空格字符之外的所有内容。{50}
意味着将匹配 50 个这样的字符(不一定相同)的序列。