Centos常用命令之:正則表達式


我們知道,正則表達式可以大大的提高我們的工作效率。

在了解正則表達式之前,我們需要了解,通配符的概念。

在linux中,我們在使用ls這個命令的時候經常會使用下面這種用法

[fuwh@localhost stu]$ ll lin1*
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin1
-rw-r--r--. 1 root root 2865 7月  26 10:58 lin11
[fuwh@localhost stu]$

可以注意到,我們這里使用了*來代替各種字符的意思。

但是這並不是正則表達式。

在linux中,有很多的命令,如果這些命令支持正則表達式,那我們就可以在命令里面使用正則表達式。比如:grep、vi等

但是,如果是不支持正則表達式的話,那就只能使用bash自帶的通配符功能了。

通配符:

* :代表0個到無窮個任意字符

?:代表一個任意字符

[]:代表括號內的任意字符(一個,且一定有一個)

[ - ]:代表減號前后的字符之間的所有字符

[^]:^是反向選擇的意思,表示一定有一個不是括號中的字符

 

了解完通配符之后,我們就可以來看看有那些正則表達式可以用了。

^word:表示以word開頭

word$:表示以word結尾

.:代表一定有一個任意的字符

\:轉義字符

*:表示前面的那個字符重復0到無窮次

[list]:表示括號內的任意一個

[n1-n2]:表示n1到n2之間的字符

[^list]:表示不是list里面的字符

\{n,m\}:表示前面的字符重復n到m次

\{n\}:表示前面的字符重復n次

\{n,\}:表示前面的字符重復n次以上

+:表示前面的字符重復一次或一次以上

?:表示前面的字符出現0次或一次

|:表示或的意思

():表示群組的意思

()+:表示出現多次的群組

 

例:

[fuwh@localhost stu]$ cat test.txt
fuwh第一海洋

fu的名字good
we use google to search
not gogle

[fuwh@localhost stu]$ grep  '^fu' test.txt
fuwh第一海洋
fu的名字good
[fuwh@localhost stu]$ grep 'd$' test.txt
fu的名字good
[fuwh@localhost stu]$ grep go\{2\} test.txt
[fuwh@localhost stu]$ grep 'go\{2\}' test.txt
fu的名字good
we use google to search
[fuwh@localhost stu]$

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM