一:grep命令的基本概念和用途

grep命令是linux中一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

在一个或多个文件中搜素字符串模式,如果字符串模式包括空格,也必须被引用,模式后的所有字符串被看作文件名。搜索的结果被送到标准输出(stdout),不影响原文件内容。

grep也可以用于shell脚本,因为grep通过返回一个状态值来说明搜索的结果,如果模式搜索成功,则返回0;如果搜索不成功,则返回1;如果搜索的文件不存在,则返回2;我们利用这些返回值就可以进行一些自动化的文本处理工作。例

shell grep无换行 shell grep返回值_搜索

二:grep命令的命令格式

根据上面的命令格式,我们可以了解到grep命令主要有两个部分[option]和pattern,下面分别从这两个部分开始去了解熟悉grep命令。

1、主要选项[option]说明及示例:

-c : 只输出匹配行的计数

shell grep无换行 shell grep返回值_字符串_02


-i : 不区分大小写

shell grep无换行 shell grep返回值_shell grep无换行_03


-l : 查询多文件时只输出包含匹配字符的文件名

shell grep无换行 shell grep返回值_字符串_04


-n : 显示匹配行及行号

shell grep无换行 shell grep返回值_shell grep无换行_05


-s : 不显示不存在或无匹配文本的错误信息

shell grep无换行 shell grep返回值_shell grep无换行_06


-v : 显示不包含匹配文本的所有行

shell grep无换行 shell grep返回值_字符串_07


-o : 只显示匹配字符串的部分

shell grep无换行 shell grep返回值_shell grep无换行_08

2、pattern正则表达式主要参数[即元字符]说明和示例

-? : 同时显示匹配行的上下?行

shell grep无换行 shell grep返回值_搜索_09


^ : 匹配正则表达式的以“某字符串”开头的行

shell grep无换行 shell grep返回值_shell grep无换行_10


$ : 匹配正则表达式的以“某字符串”结尾的行

shell grep无换行 shell grep返回值_正则表达式_11


< : 从匹配正则表达式的行开始

shell grep无换行 shell grep返回值_搜索_12


> : 到匹配正则表达式的行结束

shell grep无换行 shell grep返回值_shell grep无换行_13


[ ] : 单个字符,如[A] 即A 符合要求

shell grep无换行 shell grep返回值_字符串_14


[^ ] : 显示不包括括号中字符串的所有行

shell grep无换行 shell grep返回值_字符串_15


[ - ] : 范围匹配,如[A-C],即A、B、C都符合要求;如[a,b],即只有a和b符合要求

shell grep无换行 shell grep返回值_正则表达式_16


. :单个字符,匹配任意一个字符

shell grep无换行 shell grep返回值_字符串_17


* :匹配“*”前面的字符,匹配0个或无数个

shell grep无换行 shell grep返回值_搜索_18


\ :用来屏蔽一个元字符的特殊含义,使其作为单纯的一个字符

shell grep无换行 shell grep返回值_正则表达式_19


另外有些字符类描述,大家有兴趣可以去记一下

[: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”

三:grep命令简单使用

1、在文本中搜素只有一个字符的行,且为字母或数字

shell grep无换行 shell grep返回值_正则表达式_20


2、搜索开头不是英文字母的行

shell grep无换行 shell grep返回值_正则表达式_21


3、搜索非空行

shell grep无换行 shell grep返回值_shell grep无换行_22


4、搜索以s开头k结尾的行

shell grep无换行 shell grep返回值_字符串_23


只有经常练习,才能更好的去理解它,用起来才能更加的得心应手。让我们一起加油吧!