Bash/grep:忽略超过 N 个字符的行

Max*_*ams 0 bash find grep

我有一个 find/grep 命令用于搜索我的项目的代码库,因此:

find folder1 folder2 folderetc -print | awk '{print "\""$0"\""}' | xargs grep -n "search-string"
Run Code Online (Sandbox Code Playgroud)

经常让我恼火的是缩小的 javascript 和 css 文件,它们将所有内容都打包成一行(由于可能错误地认为删除换行符将使下载 javascript 文件的速度明显更快)。对于这些打包或缩小的文件,总会有一个非打包版本,我想在我的结果中看到它。我从不想看到打包版本,因为它只会导致屏幕和屏幕上出现无法读取的垃圾。

没有系统的方法可以告诉 grep 避免缩小或打包文件,因为没有命名约定。但我突然想到我可以过滤掉超过 400 个字符的结果。有没有办法用 grep(或其他东西?)

daw*_*wud 5

就在这里:

$ echo foobar | awk 'length($0) < 7 && $0~/foo/'
foobar
Run Code Online (Sandbox Code Playgroud)

将 替换为echo您的 find 命令和foo要搜索的字符串。将 调整为7您要过滤的长度。