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

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

find folder1 folder2 folderetc -print | awk '{print "\""$0"\""}' | xargs grep -n "search-string" 

经常刺激我的东西是缩小的JavaScript和CSS文件,其中的一切都包装成一个单一的行(由于可能被误导的认为,删除换行符会使下载JavaScript文件显着更快)。 有了这些压缩或缩小的文件,总是有一个非压缩版本,我想在我的结果中看到。 我从来不想看到压缩版本,因为它只会导致无法读取的垃圾的屏幕和屏幕。

没有系统的方法,我可以告诉grep避免缩小或打包文件,因为没有命名约定。 但是我想到,我可以过滤出长度超过400个字符的结果。 有没有办法,我可以用grep(或其他?)做到这一点

就在这里:

 $ echo foobar | awk 'length($0) < 7 && $0~/foo/' foobar 

用你的find命令和fooreplaceecho来searchstring。 将7调整为您要过滤的长度。

你可能想看看ack ,这基本上是为程序员优化的grep。 它会忽略缩小的JS和CSS文件以及位于目录中的任何版本控制系统文件。