命令介绍文本查找或搜索工具。用于查找内容包含指定模板样式的文件。如果发现一个文件的内容与指定的模板样式匹配,默认的grep将显示包含模板样式的列。如果没有指定文件名,或者给出的文件名是-,grep将从标准输入设备读取数据。它还可用于使用正则表达式搜索文本,并打印出匹配的行。也可以用来过滤搜索特定的字符串,使用非常灵活的常用参数-a#不忽略二进制数据-A#除了显示那些符合模板样式的行外,并显示后面的内容line-b#除了显示符合模板样式的行,还显示该行前的内容-B#除了显示符合样式的行,并显示该行前的内容-c#计算符合模板样式的列数-C#除了显示符合模板样式的列外,还显示列前后的内容-d#指定要查找目录时而不是文件,必须使用这个参数,否则grep命令会报信息并停止动作-e#指定一个字符串作为模板样式来查找文件的内容-E#使用模板样式作为扩展通用expression,表示扩展的正则表达式可以用公式-f#指定一个模板文件,它的内容有一个或多个模板样式,让grep找到满足模板条件的文件内容,格式为每一个的模板样式column-F#把模板样式当做一个固定字符串的列表-G#把模板样式当成一个普通的表达式来使用-h#在显示符合模板样式的列之前,不标明符合模板样式的文件名columnbelongs-H#在显示符合模板样式的列之前,标记该列的名称文件名-i#忽略字符大小写的区别-l#列出内容符合指定模板样式的文件名-L#List文件内容不符合指定模板样式的文件名-n#显示符合模板样式的列前,标注列号-q#不显示任何信息-R/-r#的效果该参数与指定“-drecurse”参数相同-s#不显示错误信息-v#反向搜索-V#显示版本信息-w#只显示匹配全词的列-x#只显示thecolumnsmatchthewholecolumn-y#这个参数的作用和"-i"是一样的-o#只输出文件中正则匹配的部分Expression^#匹配以XX$开头的行#匹配行以XX结尾常见例子1.在多个文件中搜索:grep"file"file_1file_2file_32.输出除-v选项之外的所有行:grep-v"file"file_name3.标记匹配颜色--color=auto选项:grep"file"file_name--color=auto4.使用正则表达式-E选项:grep-E"[1-9]+"egrep"[1-9]+"5.只输出文件匹配的部分-o选项:echothisisatestline.|??grep-o-E"[a-z]+."line.echothisisatestline.|??egrep-o"[a-z]+."line.6.统计文件或文本中包含匹配字符串的行数-c选项:grep-c"text"file_name27.输出包含匹配字符串的行数-nOptions:grep"text"-nfile_nameorcatfile_name|grep"text"-n8.多个文件grep"text"-nfile_1file_29.搜索多个文件,找到匹配的文本在哪些文件中:grep-l"text"file1file2file3...10.grep递归搜索文件递归搜索多级目录下的文本:grep"text".-r-n11.匹配模式忽略字符大小写:echo"helloworld"|grep-i"HELLO"hello12.选项-e指定多种匹配样式:echothisisatextline|grep-e"is"-e"line"-oisline13.也可以使用-f选项进行匹配多种样式,在样式文件中逐行写出需要匹配的字符catpatfileaaabbbechoaaabbbcccdddeee|grep-fpatfile-o14.在grep搜索结果中包含或排除指定文件:只在main()目录下的所有.php和.html文件中递归搜索字符“main()”grep“”。-r--include*.{php,html}15.从搜索结果中排除所有README文件grep"main()"。-r--exclude"README"16.从搜索结果中排除filelist文件列表grep"main()"中的文件。-r--exclude-fromfilelist更多Linux命令请参考>>>值得收藏!Linux系统常用命令速查手册grep"San"testfile#过滤带San的行grep'^J'testfile#显示以J开头的行grep'70$'testfile#显示以70结尾的行grep-v"834"testfile#显示所有不包括834的行grep':12/'testfile#Display:lineof12/grep':498-'testfile#Display:lineof498-grep'[A-Z][a-z]{4}:[[:space:]][A-Z]'testfile#显示这样一行,一个大写字母+四个小写字母+空格+一个大写字母grep'[a-z]{1,}[[:space:]][Kk]'testfile#显示包含Kk的行grep-n'[0-9]{6,}$'testfile#显示6位的行,并打印行号grep-i"lincoln"testfile#显示有lincoln的行,case不敏感https://github.com/mingongge/...
