linux中正則表達(dá)式有什么用

小編給大家分享一下linux中正則表達(dá)式有什么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

目前成都創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、富拉爾基網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

1、輔助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二進(jìn)制這種格式的,幾乎什么都是可以讀寫的文本內(nèi)容。大多數(shù)命令生成的結(jié)果,也都是文本文件。這些文件有一些特點(diǎn),通常列與列都是通過空格或者鍵分隔的。比如下面lsmem的結(jié)果,這種有規(guī)律的,有章可循的文件,是非常容易被處理的。

[root@localhost ~]# lsmem RANGE                                  SIZE  STATE REMOVABLE BLOCK 0x0000000000000000-0x0000000007ffffff  128M online        no     0 0x0000000008000000-0x000000000fffffff  128M online       yes     1 0x0000000010000000-0x0000000017ffffff  128M online        no     2 0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4 0x0000000028000000-0x000000004fffffff  640M online        no   5-9 0x0000000050000000-0x000000005fffffff  256M online       yes 10-11 0x0000000060000000-0x000000007fffffff  512M online        no 12-15  Memory block size:       128M Total online memory:       2G Total offline memory:      0B

有一大批針對(duì)于行操作的命令,同樣有一批針對(duì)于列操作的命令。然后,有兩個(gè)集大成者,叫做sed、awk。由于這兩個(gè)命令的內(nèi)容非常多,我們將其列為單獨(dú)的章節(jié)。

1.2、幫助信息

通常linux命令都十分簡(jiǎn)單,但是有些還是有些復(fù)雜度的。比如find,ps這種命令,如果要照顧到所有的場(chǎng)合,可能需要非常巨大的篇幅。但是,萬一用到這種偏門的場(chǎng)合怎么辦?

全面了解一下是非常有必要的,以便在使用的時(shí)候能夠喚起記憶中最淺顯的印象。然后剩下的,就可以交給類似于man的這種命令了。Linux上的每一個(gè)命令,都會(huì)有配套的幫助文件,這遠(yuǎn)比網(wǎng)絡(luò)上那些轉(zhuǎn)來轉(zhuǎn)去的信息,正確的多。

正式介紹一下下面的兩個(gè)命令:

  • man 用來顯示某個(gè)命令的文檔信息。比如:man ls

  • info 你可以認(rèn)為和man是一樣的,雖然有一些能夠互補(bǔ)的內(nèi)容。它們會(huì)在內(nèi)容中進(jìn)行提示的

  • --help  很多命令通過參數(shù)--help提供非常簡(jiǎn)短的幫助信息。這通常是最有用最快捷的用例展示。如果你根本就記不住一個(gè)非常拗口的單詞,那就找找這些地方吧

注意:這些幫助信息,僅集中在命令的作用域本身。對(duì)于它的組合使用場(chǎng)景,并沒有過多信息。也就是說,它教會(huì)了你怎么用,但并沒有告訴你用它能夠來做什么。

這些幫助命令,一般會(huì)通過高亮關(guān)鍵字,增加閱讀的體驗(yàn)。但我們可以更近一步,把幫助文件變成彩色的。在root用戶下,執(zhí)行下面的命令。然后,重新登錄虛擬機(jī)。

cat >> ~/.bashrc <<EOF function man() {     env \\     LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\     LESS_TERMCAP_md=\$(printf "\e[1;31m") \\     LESS_TERMCAP_me=\$(printf "\e[0m") \\     LESS_TERMCAP_se=\$(printf "\e[0m") \\     LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\     LESS_TERMCAP_ue=\$(printf "\e[0m") \\     LESS_TERMCAP_us=\$(printf "\e[1;32m") \\     man "\$@"} EOF

再次執(zhí)行man命令,就可以看到彩色的信息了。

linux中正則表達(dá)式有什么用

1.3、TAB補(bǔ)全

現(xiàn)在,在終端里,輸入ca,然后快速按2次鍵盤,命令行會(huì)進(jìn)入補(bǔ)全模式,顯示以ca打頭的所有命令。

[root@localhost ~]# ca cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你對(duì)某個(gè)命令,只有模糊的印象,只記得前面的幾個(gè)字母,這個(gè)功能是極好的,命令范圍會(huì)一步步縮減。

2、正則表達(dá)式

為了開始下面的內(nèi)容,我們首先介紹一下正則表達(dá)式。在前面的一些命令中,也可以使用這些正則表達(dá)式,比如less、grep等。

有些書籍,能夠把正則表達(dá)式寫成一本書,我們這里僅作簡(jiǎn)單的介紹,但足夠用了。一般的,正則表達(dá)式能用在匹配上,還能夠把匹配的內(nèi)容拿來做二次利用。關(guān)于后者,我們?cè)趕ed命令中介紹。




標(biāo)志意義 
^行首 
$行尾 
.任意單個(gè)字符 
*匹配0個(gè)或者多個(gè)前面的字符 
+1個(gè)或者多個(gè)匹配 
?0個(gè)或者1個(gè)匹配 
{m}前面的匹配重復(fù)m次 
{m,n}前面的匹配重復(fù)m到n次 
[]匹配一個(gè)指定范圍內(nèi)的字符 
[^]匹配指定范圍外的任意單個(gè)字符 
\轉(zhuǎn)義字符 
[0-9]匹配括號(hào)中的任何一個(gè)字符,or的作用 
``or,或者
\b匹配一個(gè)單詞。比如\blucky\b 只匹配單詞lucky
 

使用下面的命令創(chuàng)建一個(gè)文件,我們練習(xí)一下grep命令加上E參數(shù)后的正則表現(xiàn)。

cat > 996 <<EOF 996: 996 is a funcking thing . which make woman as man , man as ass . we all on the bus , bus bus on the way . 996 way to icu. icuuuuuu...... The greedy green boss rides on the pity programmer EOF

在終端執(zhí)行下面命令,注意高亮的部分即為匹配到的字符串。

# 匹配996開頭的行 [root@localhost ~]# cat 996 | grep -E ^996 996: 996 is a funcking thing . which make woman as man , man as ass .  # 匹配996結(jié)尾的行 [root@localhost ~]# cat 996 | grep -E 996$ we all on the bus , bus bus on the way . 996  # 匹配到icu和icuuuuuu [root@localhost ~]# cat 996 | grep -E icu+ way to icu. icuuuuuu......  # 再次匹配到996 [root@localhost ~]# cat 996 | grep -E [0-9] 996: 996 is a funcking thing . which make woman as man , man as ass . we all on the bus , bus bus on the way . 996  [root@localhost ~]# cat 996 | grep -E ^[\^0-9] we all on the bus , bus bus on the way . 996 way to icu. icuuuuuu...... The greedy green boss rides on the pity programmer  # 匹配所有不包含996的行,良心命令,淚奔 [root@localhost ~]# cat 996 | grep -E -v [0-9]{3} way to icu. icuuuuuu...... The greedy green boss rides on the pity programmer  # 匹配boss和icu [root@localhost ~]# cat 996 | grep -E boss\|icu way to icu. icuuuuuu...... The greedy green boss rides on the pity programmer  # 匹配所有行 [root@localhost ~]# cat 996 | grep -E . 996: 996 is a funcking thing . which make woman as man , man as ass . we all on the bus , bus bus on the way . 996 way to icu. icuuuuuu...... The greedy green boss rides on the pity programmer

正則表達(dá)式非常的重要,在一些sed腳本中,awk腳本中,甚至是vim編輯器中,都會(huì)簡(jiǎn)化你的操作。以上內(nèi)容應(yīng)該熟記,達(dá)到不需要查找文檔的地步。

以上是“l(fā)inux中正則表達(dá)式有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文題目:linux中正則表達(dá)式有什么用
文章分享:http://muchs.cn/article28/pdpccp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、電子商務(wù)網(wǎng)站設(shè)計(jì)、網(wǎng)站排名、企業(yè)建站、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)