用gawk遍历目录查找字符串在文件中的位置

写了一个bash+gawk小脚本,遍历一个目录下的所有文件(包括子文件夹里的文件),看文件中是否存在要查找的字符串,如果有则列出文件名称和字符串所在位置的行的内容。

 

  1. #!/bin/bash
  2. # coded by jackyvan (http://blog.csdn.net/jackyvan)
  3. #
  4. if [ "$#" -lt 2 ] #判断参数
  5. then
  6.     echo "need 2 arguments at least!"
  7.     echo "*************************"
  8.     echo "1st for seached path"
  9.     echo "2nd for string pattern"
  10.     echo "3rd for showing line string"
  11.     exit
  12. fi
  13. showline=0 #variable for showing line string ,0 indicate not showing
  14. if [ "$#" -eq 3 ]
  15.     then
  16.     showline=1
  17. fi
  18. ####### find with gawk working############################
  19. find "$1" -type f -exec gawk 'BEGIN{count=0 } {if($0~/'"$2"'/){result[count++]="*****"FNR":"$0}}END{if(count>0){print(FILENAME); if('"$showline"'=="1"){for(i=0;i {} /; 2>/dev/null

你可能感兴趣的:(技术笔记)