我想找到项目中所有硬编码的字符串,除了单词以Log(
开头。
使用此正则表达式执行此操作但收到上述错误。
KEYWORDS='(?<!(Log\())@"[^"]+"'
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" \) -print0 | xargs -0 egrep --with-filename "($KEYWORDS).*\$
是否有其他替代正则表达式或脚本可以获得相同的结果。
答案 0 :(得分:1)
您可能只是过滤掉了您不想看到的内容:
xargs -0 grep -EH '@"[^"]+"' | grep -v 'LOG\(@"'
如果你想坚持你的正则表达式:
xargs -0 perl -ne 'print "$ARGV: $_" if /(?<!LOG\()@".+?"/'