grep命令是linux中一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 在一个或多个文件中搜素字符串模式,如果字符串模式包括空格,也必须被引用,模式后的所有字符串被看作文件名。搜索的结果被送到标准输出(stdout),不影响原文件内容。 grep也可以用于shell脚本,因为grep通过返回一个状态值来说明搜索的结果,如果模式搜索成功,则返回0;如果搜索不成功,则返回1;如果搜索的文件不存在,则返回2;我们利用这些返回值就可以进行一些自动化的文本处理工作。例
根据上面的命令格式,我们可以了解到grep命令主要有两个部分[option]和pattern,下面分别从这两个部分开始去了解熟悉grep命令。
1、主要选项[option]说明及示例:-c : 只输出匹配行的计数-i : 不区分大小写-l : 查询多文件时只输出包含匹配字符的文件名-n : 显示匹配行及行号-s : 不显示不存在或无匹配文本的错误信息-v : 显示不包含匹配文本的所有行-o : 只显示匹配字符串的部分
2、pattern正则表达式主要参数[即元字符]说明和示例
-? : 同时显示匹配行的上下?行^ : 匹配正则表达式的以“某字符串”开头的行$ : 匹配正则表达式的以“某字符串”结尾的行< : 从匹配正则表达式的行开始> : 到匹配正则表达式的行结束[ ] : 单个字符,如[A] 即A 符合要求[^ ] : 显示不包括括号中字符串的所有行[ - ] : 范围匹配,如[A-C],即A、B、C都符合要求;如[a,b],即只有a和b符合要求. :单个字符,匹配任意一个字符* :匹配“*”前面的字符,匹配0个或无数个\ :用来屏蔽一个元字符的特殊含义,使其作为单纯的一个字符另外有些字符类描述,大家有兴趣可以去记一下 [:alnum:] 字母数字集 “a-z A-Z 0-9” [:alpha:] 字母集合 “a-z A-Z” [:blank:] 空格或制表键 [:cntrl:] 任何控制字符 [:digit:] 数字集合 “0-9” [:graph:] 任何可视字符(无空格) [:lower:] 小写字母 “a-z” [:print:] 非控制字符 [:punct:] 标点字符 [:space:] 空格 [:upper:] 大写字母 “A-Z” [:xdigit:] 十六进制数字 “0-9 a-f A-F”
1、在文本中搜素只有一个字符的行,且为字母或数字2、搜索开头不是英文字母的行3、搜索非空行4、搜索以s开头k结尾的行 只有经常练习,才能更好的去理解它,用起来才能更加的得心应手。让我们一起加油吧!