中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux中正則表達式有什么用

發布時間:2021-10-25 09:42:09 來源:億速云 閱讀:219 作者:小新 欄目:系統運維

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

1、輔助信息

1.1、文件格式

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

[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

有一大批針對于行操作的命令,同樣有一批針對于列操作的命令。然后,有兩個集大成者,叫做sed、awk。由于這兩個命令的內容非常多,我們將其列為單獨的章節。

1.2、幫助信息

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

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

正式介紹一下下面的兩個命令:

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

  • info 你可以認為和man是一樣的,雖然有一些能夠互補的內容。它們會在內容中進行提示的

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

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

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

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

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

linux中正則表達式有什么用

1.3、TAB補全

現在,在終端里,輸入ca,然后快速按2次鍵盤,命令行會進入補全模式,顯示以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

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

2、正則表達式

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

有些書籍,能夠把正則表達式寫成一本書,我們這里僅作簡單的介紹,但足夠用了。一般的,正則表達式能用在匹配上,還能夠把匹配的內容拿來做二次利用。關于后者,我們在sed命令中介紹。




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

使用下面的命令創建一個文件,我們練習一下grep命令加上E參數后的正則表現。

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

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

# 匹配996開頭的行 [root@localhost ~]# cat 996 | grep -E ^996 996: 996 is a funcking thing . which make woman as man , man as ass .  # 匹配996結尾的行 [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

正則表達式非常的重要,在一些sed腳本中,awk腳本中,甚至是vim編輯器中,都會簡化你的操作。以上內容應該熟記,達到不需要查找文檔的地步。

以上是“linux中正則表達式有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大渡口区| 论坛| 马关县| 沧州市| 通渭县| 霍城县| 沙洋县| 奉新县| 怀远县| 皋兰县| 蓬莱市| 三河市| 通州市| 武山县| 禹城市| 潼南县| 甘孜| 铁岭县| 临漳县| 万荣县| 苏尼特左旗| 永济市| 香河县| 房产| 台中县| 武邑县| 新竹县| 宕昌县| 深圳市| 丹东市| 九龙县| 罗源县| 大连市| 乐昌市| 离岛区| 自治县| 吉林市| 玉溪市| 吉林省| 桓台县| 米易县|