18 我经常运行grep命令来查找代码中的内容,但是Web项目的问题是,经常会有压缩的JavaScript和CSS文件创建一行巨大的文本,因此,如果找到匹配项,则整个终端窗口将填充了超过1000行,因此很难找到我要的内容。 那么有没有办法避免文件中的单行文字超过200个字符? grep — 马克·卡梅伦 source
20 使用GNU grep和xargs: grep -rLZE '.{200}' . | xargs -r0 grep pattern 或者,您可以剪切grep的输出: grep -r pattern . | cut -c1-"$COLUMNS" 或者告诉您的终端如果支持则不要换行: tput rmam grep -r pattern . 或使用 less -S grep -r pattern . | less -S — StéphaneChazelas source 3 使用第一个示例中的regex,使用invert match,将管道输送到grep ... | grep -v -E '.{200}'也是有效的。例如,在* .js文件的当前目录下查找所有长度不超过200个字符的* .js文件: find . -name "*.js" -exec grep -H \\.name {} \; | grep -v -E '.{200}' — Gary S. Weaver 2015年
3 选项1: 您可以排除符合特定格式的文件: grep --exclude='*.min.*' 这将排除script.min.js和style.min.css...其他grep选项包括--exclude-from=FILE和--exclude-dir=DIR 选项2: 我不确定这是否可行,但是您可以cut每行的前200个字符,然后是grep它们: grep -H [OPTIONS] PATTERN [FILE...] | cut -c1-200 | grep PATTERN 第一个grep执行初始匹配并输出文件名和行,第二个确保在行设置PATTERN后仍然存在cut。 — 奥拉龙 source
... | grep -v -E '.{200}'
也是有效的。例如,在* .js文件的当前目录下查找所有长度不超过200个字符的* .js文件:find . -name "*.js" -exec grep -H \\.name {} \; | grep -v -E '.{200}'