2022-05-05_Linux:_grep及正则表达式

Grep\Egrep\Fgrep
文本查找的需要:
grep==global research ;根据模式,搜索文本并显示符合模式的文本行;
Pattern:文本字符和正则表达式的元字符组合而成匹配条件
grep [OPTIONS] PATTERN [FILE...]
——grep 'root' data_20220502-115757.log
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

grep
-i(忽略大小写) grep -i 'root' /etc/passwd
--color grep --color 'root' /etc/passwd
alias grep='grep --color'
-v (显示不符合,不匹配的行) grep -v 'root' /etc/passwd
-o (只显示被模式匹配的字符串)grep -o 'root' /etc/passwd

*任意长度的任意字符
?任意单个字符
[]:范围内
[^]:范围外

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

grep 'r..t' /etc/passwd
匹配次数:
*:匹配其前面的字符任意次
a,b,ab,aab,adb,annb
ab==b,ab,aab,adb,annb(a可以出现也可以不出现)
a.
b=ab,aab,adb,annb
.* 任意长度的任意字符
\?匹配其前面的字符1次或者0次
a?b=b,ab,aab,adb,annb
grep 'a?b' test.text
\{m,n\}匹配其前面的字符至少m次,至多n次
{1,}:至少1次,多了不限制
{0,3}:至多3次
grep 'a{1,3}b' test.text= ab aab
grep 'a.{1,3}b' test.text =aab adb amnb amnbmnbmnb

位置锚定:
^锚定行首:此字符后面的任意内容必须出现在行首
grep '^r' /etc/passwd
$锚定行尾:此字符后面的任意内容必须出现在行尾
grep 't$' /etc/passwd

^$空白行
grep '^$' /etc/passwd

以数字结尾的行:
grep '[[:digit:]]$' /etc/inittab

以空白行+数字结尾的行:
grep '[[:space:]][[:digit:]]$' /etc/inittab

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

\>或者\b:锚定词尾,其后面的任意字符必须作为单词‘尾部’出现

[root@ip-10-18-6-152 logs]# grep '\<root\>' test2.txt 
this is root
[root@ip-10-18-6-152 logs]# grep '\<root' test2.txt 
this is root
rooter is a dog name 

[root@ip-10-18-6-152 logs]# grep '\<root\b' test2.txt 
this is root
[root@ip-10-18-6-152 logs]# grep '\broot' test2.txt 
this is root
rooter is a dog name 

分组:
()
(ab)* 后项引用
\1:第一个左括号以及与之对应的右括号所包括的所有内容
\2:第一个左括号以及与之对应的
\3:第一个左括号以及与之对应的
grep '(ab)*' test.text

Me love his lover.
She like her liker.
Me like his lover.
grep '\(l..e\).*\1' test3.txt

[root@ip-10-18-6-152 logs]# grep '\(l..e\)*r' test3.txt 
Me love his lover.
She like her liker.
Me like his lover.
[root@ip-10-18-6-152 logs]# grep '\(l..e\).*\1' test3.txt 
Me love his lover.
She like her liker.

以任意数字开头并结尾的:
grep '([0-9]).*\1$' test3.txt

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容