我尝试使用 find 与 grep 组合来查找我的 Web 服务器中包含长度超过 50 个字符的单词(空格以外的任意字符序列)的所有 php 文件。
我有这个基础:
find . -name '*.php' -exec fgrep -q '.{50}' {} \; -print
但并没有像预期的那样工作。
谢谢
答案1
.
代表除换行符之外的所有内容,包括空格和制表符。这就是正则表达式将匹配长度超过 50 个字符的行的原因。
要匹配长度至少为 50 个字符的单词,你可以使用以下命令:
[^\s]{50}
[^\s]
匹配除空格字符之外的所有内容。{50}
意味着将匹配 50 个这样的字符(不一定相同)的序列。