文本查找

grep,egrep,fgrep

grep

grep : 根据模式,搜索文本,并将符合模式文本行显示出来.
Pattren: 文本字符和正则表达式的元字符组合而成匹配条件
用法: grep [选项]... PATTERN [FILE]...
选项:

-i 忽略字符大小写
-v 显示没有被模式匹配到的行,匹配到的不显示
-o 只显示被模式匹配到的串本身

1.png

-E:使用扩展正则表达式
-A:显示后面的两行

13.png

-B:显示前面的两行

14.png

-C:显示先后个两行

15.png

*

*:任意长度的任意字符

?

?:任意单个字符

[]

[]:指定范围内的任意单个字符

[^]

[^]:指定范围外的任意单个字符


字符集合:

字符集合:
[:digit:]---数字,[:lower: ]---小写字母,[:upper:]---大写字母,[:punct:]---标点符号
[:space:]---空白字符,[:alpha:]---所有字母,[:alnum:]---所有数字和字母


正则表达式

正则表达式: REGular EXPression,REGEX


元字符

元字符:

.

.:匹配任意单字符
2.png

匹配次数(贪婪模式)

匹配次数(贪婪模式):

*:匹配其前面的字符任意次

*:匹配其前面的字符任意次

ab,aab,acb,adb,amnb

a**b: 3.png

.*:任意长度的任意字符

.*:任意长度的任意字符

a.*b:4.png

?:匹配其前面的字符1次或0次

?:匹配其前面的字符1次或0次

a?b:5.png

{m,n}:匹配其前面的字符至少m次,至躲n次

{m,n}:匹配其前面的字符至少m次,至躲n次

a{1,3}b:6.png
a.{1,3}b:7.png

位置锚定

位置锚定:

^:锚定行首

^:锚定行首,此字符后面的任意内容必须出现在行首
8.png

$:锚定行尾

$:锚定行尾,此字符前面的任意内容必须出现在行尾
9.png

^$:空白行

^$:空白行

<或b

<或b:锚定词首,其后面的任意字符必须作为单词首部出现

>b

>b:锚定词尾,其前面的任意字符必须作为单词尾部出现

This is root.
The user is mroot.
Rooter is a dog’s name.
chroot is a command.
Mrooter is not a word.

<root>---精确匹配
10.png

<root---出现在词首
11.png

root>---出现在词尾
12.png

分组

分组;
\(\)

()内是一个整体,主要为了实现在后面继续引用前面被匹配到的内容
也成为后向引用
后面可以使用一个字符再次引用它
\1:第一个左括号以及与之对应的右括号所包括的所    有内容
\2:
\3:    

He love his lover.
She like her liker.
He like his lover

\(l..e\).*\1
16.png


扩展正则表达式

扩展正则表达式:

字符匹配

字符匹配:
.
[]
[^]

次数匹配

次数匹配:
*:
?:
+:匹配其前面的字符至少1次
{m,n}

位置锁定

位置锁定:
^
$
<
>

分组

分组
1,2,3,…
或者
|:或者的意思

17.png

至少一个空白字符开头的行
18.png

*

之前word文档丢了,又用npp写了一份文字笔记:confused:,太难了
文本查找
grep,egrep,fgrep
grep : 根据模式,搜索文本,并将符合模式文本行显示出来.
Pattren: 文本字符和正则表达式的元字符组合而成匹配条件
用法: grep [选项]... PATTERN [FILE]...
选项:
    -i 忽略字符大小写
    -v 显示没有被模式匹配到的行,匹配到的不显示
    -o 只显示被模式匹配到的串本身
 
    -E:使用扩展正则表达式
    -A:显示后面的两行
 
    -B:显示前面的两行
 
    -C:显示先后个两行
 
    
*:任意长度的任意字符
?:任意单个字符
[]:指定范围内的任意单个字符
[^]:指定范围外的任意单个字符
字符集合:
[:digit:]---数字,[:lower: ]---小写字母,[:upper:]---大写字母,[:punct:]---标点符号
[:space:]---空白字符,[:alpha:]---所有字母,[:alnum:]---所有数字和字母

 

正则表达式: REGular EXPression,REGEXP
元字符:
.:匹配任意单字符
 

匹配次数(贪婪模式):
*:匹配其前面的字符任意次
    ab,aab,acb,adb,amnb

a*b: 
.*:任意长度的任意字符

a.*b: 

\?:匹配其前面的字符1次或0次(可有无可)

a\?b:  

\{m,n\}:匹配其前面的字符至少m次,至躲n次(m至少)

a\{1,3\}b: 
a.\{1,3\}b: 

位置锚定:
^:锚定行首,此字符后面的任意内容必须出现在行首
 

$:锚定行尾,此字符前面的任意内容必须出现在行尾
 

^$:空白行

\<或\b:锚定词首,其后面的任意字符必须作为单词首部出现
\>\b:锚定词尾,其前面的任意字符必须作为单词尾部出现
    This is root.
    The user is mroot.
    Rooter is a dog’s name.
    chroot is a command.
    Mrooter is not a word.

\<root\>---精确匹配
 

\<root---出现在词首
 

root\>---出现在词尾
 

分组;
\(\)
()内是一个整体,主要为了实现在后面继续引用前面被匹配到的内容
也成为后向引用
后面可以使用一个字符再次引用它
\1:第一个左括号以及与之对应的右括号所包括的所有内容
\2:
\3:    
He love his lover.
She like her liker.
He like his lover

\(l..e\).*\1 



扩展正则表达式:
字符匹配:
.:任意单个字符
[]:指定范围内的任意单个字符
[^]:指定范围外的任意单个字符

次数匹配:
*:其前字符任意次
?:匹配其前面的字符1次或0次(可有无可)
+:匹配其前面的字符至少1次
{m,n}

位置锁定:
^
$
\<
\>

分组
\1,\2,\3,…
或者
|:或者的意思

 

至少一个空白字符开头的行
 

Shell编程:

编译器,解释器

编程语言,机器语言,汇编语言,高级语言
静态语言:编译型语言
    强类型(变量)
关键字:
动态语言:解释型语言
最后修改:2019 年 10 月 15 日 08 : 15 PM
如果觉得我的文章对你有用,请随意赞赏