我经常运行 grep 命令来查找我的代码中的内容,但是 Web 项目的问题是通常会有压缩的 JavaScript 和 CSS 文件创建一大行文本,因此如果找到匹配项,则整个终端窗口都是填充了超过 1000 行,这使得找到我正在寻找的内容非常不切实际。
那么有没有办法避免使用超过 200 个字符的单行文本的文件?
Sté*_*las 23
使用 GNU grep 和 xargs:
grep -rLZE '.{200}' . | xargs -r0 grep pattern
Run Code Online (Sandbox Code Playgroud)
或者,您可以减少 grep 的输出:
grep -r pattern . | cut -c1-"$COLUMNS"
Run Code Online (Sandbox Code Playgroud)
或者告诉您的终端不要换行,如果它支持的话:
tput rmam
grep -r pattern .
Run Code Online (Sandbox Code Playgroud)
或使用 less -S
grep -r pattern . | less -S
Run Code Online (Sandbox Code Playgroud)
选项 1: 您可以排除匹配特定模式的文件:
grep --exclude='*.min.*'
Run Code Online (Sandbox Code Playgroud)
这将排除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
Run Code Online (Sandbox Code Playgroud)
第grep一个进行初始匹配并输出文件名和行,第二个确保在调整行PATTERN后仍然存在cut。