文本搜索利器:grep egrep fgrep

,,grep名称来自于g/re/p(全球搜索正则表达式和印刷,以正规表示法进行全域查找以及打印),是一个最初用于Unix操作系统的命令行工具。在给出文件列表或标准输入后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本。

指定表格中<坳宽度=" 609 "/> 指定表格中命令名称:grep,, egrep,, fgrep
命令作用:print  lines  matching  a 模式
命令用法:grep [选项],PATTERN [文件…]
,,,,,,,,,, grep [选项],[-e  PATTERN  |, -f 文件],[文件…]
参数选项:-v ,反向选取
,,,,,,,,,, -o ,仅显示匹配的字符串,而非字符串所在的行
,,,,,,,,,,我,,忽略字符串大小写
,,,,,,,,,, -E ,支持只用扩展正则表达式
,,,,,,,,,, -A  n ,显示匹配到字符串之后的n行
,,,,,,,,,, -B  n ,显示匹配到字符串之前的n行
,,,,,,,,,, -C  n ,显示匹配到字符串前后的n行
,,,,,,,,,,, color ,高亮显示匹配到的字符串


常见字符集:

指定表格中<坳宽度=" 83 "/> <坳宽度=" 181 "/> 指定表格中[空间:]所以空白字符[punct:]所以标点符号(低:)所有小写字母[:上:]所以大写字母[数字:]所有数字[:alnum:]所有大小写字母和数字[:α]所有大小写字母


文件名通配:


指定表格中<坳宽度=" 35 "/> <坳宽度=" 270 "/> 指定表格中*任意长度的任意字符?匹配任意单个字符[]匹配指定范围内的任意单个字符[^]匹配指定范围以外的任意单个字符


基本正则表达式:

指定表格中<坳宽度=" 72 "/> <坳宽度=" 67 "/> <坳宽度=" 368 "/> 指定表格中字符匹配。匹配任意单个字符[]匹配指定范围内的任意单个字符[^]匹配指定范围外的任意单个字符次数匹配*前面的字符可以出现任意次\ ?前面的字符出现0次或1次者\ \}{米前面的字符出现m次\ {m, n \}前面的字符出现n次~ m次\ {m \}前面的字符至少出现m次\ {0,n \}前面的字符至多出现n次。*任意长度的任意字符位置锚定^行首锚定,写在模式的最左侧美元行尾锚定,写在模式的最右侧^ $匹配空行\ & lt;词首锚定,出现于单词左侧\祝辞词尾锚定,出现于单词右侧分组\(\)匹配一个分组\ 1引用第1个括号所匹配到的内容,而非模式本身\ 2

引用第2个括号所匹配到的内容,而非模式本


扩展正则表达式:

指定表格中<坳宽度=" 72 "/> <坳宽度=" 67 "/> <坳宽度=" 368 "/> 指定表格中字符匹配。匹配任意单个字符[]匹配指定范围内的任意单个字符[^]匹配指定范围外的任意单个字符次数匹配*前面的字符可以出现任意次?前面的字符出现0次或者1次+前面的字符至少出现1次{m}前面的字符出现m次{m, n}前面的字符出现n次~ m次{m}前面的字符至少出现m次{0,n}前面的字符至多出现n次锚定^行首锚定,写在模式的最左侧美元行尾锚定,写在模式的最右侧\ & lt;, \ b词首锚定,出现于单词左侧\祝辞,\ b词尾锚定,出现于单词右侧^ $匹配空行分组()匹配一个分组\ 1引用第1个括号所匹配到的内容,而非模式本身


grep练习:

1,显示/proc/meminfo文件中以大写或小写年代开头的行;

[root@DB2 ~] #

[root@DB2 ~] #

[root@DB2 ~] #


2,显示/etc/passwd文件中其默认壳为非/sbin/nologin的用户;

[root@DB2 ~] #


3,显示/etc/passwd文件中其默认壳为/bin/bash并且ID号最大的用户;

4,找出/etc/passwd文件中的一位数或两位数;

[root@DB2 ~] #

[root@DB2 ~] #


5,显示/boot/grub/grub。设计中以至少一个空白字符开头的行;

[root@DB2 ~] #


6,显示到/etc/rc。sysinit文件中,以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;

[root@DB2 ~] #


7,找出netstat晒命令执行结果中以“听”结尾的行;

[root@DB2 ~] #


8日添加用户bash, testbash,破坏者,nologin (SHELL为/sbin/nologin),而找出当前系统上其用户名和默认壳相同的用户;

[root@DB2 ~] #


9日扩展题:新建一个文本文件,假设有如下内容:

他喜欢他的情人。

他爱他的情人。

他喜欢他喜欢的人。

他喜欢的人的爱。

找出其中最后一个单词是由此前某单词加r构成的行。

文本搜索利器:grep egrep fgrep