grep multiple extension current and subfolders
我正在尝试在当前和所有子文件夹中对多个扩展名进行grep。
1 | grep -i -r -n 'hello' somepath/*.{php,html} |
这只是对当前文件夹进行grepping,而不是对子文件夹进行grepping。
这样做的好方法是什么?
仅使用grep:
1 | grep -irn --include='*.php' --include='*.html' 'hello' somepath/ |
其中之一:
1 2 | find '(' -name '*.php' -o -name '*.html' ')' -exec grep -i -n hello {} + find '(' -name '*.php' -o -name '*.html' ')' -print0 | xargs -0 grep -i -n hello |
我也是这么想的,当我决定做一个bash脚本时,我从vim codesearch开始,很惊讶我以前已经做过这个了!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #!/bin/bash context="$3" #ln = line number mt = match mc = file export GREP_COLORS="sl=32:mc=00;33:ms=05;40;31:ln=" if [["$context" =="" ]]; then context=5; fi grep --color=always -n -a -R -i -C"$context" --exclude='*.mp*'\ --exclude='*.avi'\ --exclude='*.flv'\ --exclude='*.png'\ --exclude='*.gif'\ --exclude='*.jpg'\ --exclude='*.wav'\ --exclude='*.rar'\ --exclude='*.zip'\ --exclude='*.gz'\ --exclude='*.sql'"$2""$1" | less -R |
将此代码粘贴到名为codesearch的文件中,并将chmod设置为700或770我想下次我忘记的时候这里会更好
此脚本将用颜色显示匹配项和周围的上下文
1 | ./codesearch '/full/path' 'string to search' |
和可选的定义默认值5周围的上下文行数
1 | ./codesearch '/full/path' 'string to search' 3 |
我编辑了代码并添加了一些眼糖
示例./codesearch./'eval'2
当您在终端中启用了"允许闪烁文本"时,如下所示