對于什麼是正則表達式,網絡上有很多解釋。作者的理解是:正則表達式是一種文本模式,或者說是一種特殊的字符串模式,它的作用是處理字符串。
學習正則表達式的前提是了解正則表達式中需要用到的一些字符及其含義。正則表達式中的字符及其含義見表 6-1。
為什麼要介紹這些文本處理命令呢?因為正則表達式經常會與這些命令配合一起使用。
grep 命令是一個強大的文本搜索工具,它與正則表達式配合,将匹配到的行輸出到屏幕上。grep 命令的語法格式如下。
grep [選項] 條件表達式 文件名
grep 命令常用的選項如下。
sed 命令是一種流編輯器,用于過濾或轉換文本。sed 命令的語法格式如下。
sed [選項] 'command'文件名
(1)sed 命令常用的選項如下。
(2)sed 命令中的 command 常用選項如下。
awk是一個強大的編程工具,用于在 Linux和 UNIX下對文本和數據進行處理。 awk命令的語法格式如下。
awk[選項] '條件 {動作}' 文件名 awk命令常用的選項如下。
上述 3個命令的參數都非常多,這裡隻列舉一些常用的選項,有興趣的讀者請查看幫助文檔自行研究。
下面将使用grep、sed、awk這 3個命令配合正則表達式進行示例操作。将系統中的 IP地址取出并輸出到屏幕上,操作過程如下。 (1)使用 sed命令配合正則表達式取出 IP地址,命令如下。
[root@centos6 ~]# ifconfig eth0|sed -n '2p'
inet addr:192.168.197.100 Bcast:192.168.197.255 Mask:255.255.255.0 #打印IP地址信息,然後截取第二行内容輸出 [root@centos6 ~]# ifconfig eth0|sed -n '2p'|sed -r 's#.*addr:##g'
192.168.197.100 Bcast:192.168.197.255 Mask:255.255.255.0 #将第一步結果中“addr:”及其前所有字符全局替換成空 [root@centos6 ~]# ifconfig eth0|sed -n '2p'|sed -r 's#.*addr:##g'|sed -r 's# Bcast.*$##g'
192.168.197.100 #将第二步結果中“Bcast”開頭且任意字符結尾的部分全局替換成空,并輸出最終結果
(2)使用 grep命令與 awk命令配合正則表達式取出 IP地址,命令如下。
[root@Centos /]# ifconfig eth0 |grep "inet addr"
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
#首先将帶有IP地址的行過濾打印出來,再進行過濾取出IP地址
[root@Centos /]# ifconfig eth0 |grep "inet addr"|awk -F '[ :] ' '{print $4}'
192.168.1.2 #以空格和“:”作為分隔符,“ ”代表前面多個重複的分隔符視為一個,将第四列打印
vim 是 vi 的加強版,比 vi 更容易使用。vim 編輯器是 UNIX 系統和 Linux 系統中最标準的編輯器,功能非常強大,可以執行查找、删除、替換、輸出多種文本的操作。因此,掌握 vim 編輯器的使用方法是學習 Linux 系統過程中比較重要的一個基礎部分。
vim 編輯器有 3 種模式,分别如下。
(1)命令模式:在此模式下,可以通過移動光标,對字符或行進行删除操作。
(2)插入模式:在命令模式下,按<I>鍵即可進入插入模式,隻有在插入模式下才可以進行文字、字符的輸入操作。按<Esc>鍵可以退出插入模式(返回命令模式)。
(3)底行模式:在此模式下,可以保存文件、設置編輯環境,以及退出 vim 編輯器。
這 3 種模式之間的切換如圖 6-1 所示。
圖6-1 vim編輯器在3種模式之間的切換
vim 編輯器在命令模式下光标的移動方法見表 6-2。
vim 編輯器在命令模式下搜索與查找的方法見表 6-3。
vim 編輯器在插入模式下保存與退出的方法見表 6-5。
表 6-5 插入模式下保存與退出的方法
本文摘自《Linux系統運維指南:從入門到企業實戰》
本書系統全面、由淺入深地介紹了 Linux系統運維的知識,以及在企業實際環境中用到的各類服務、架構和運維管理。本書分基礎篇、 LAMP/LNMP架構篇、應用服務篇和架構運用篇。基礎篇詳細介紹 Linux系統的基礎知識, LAMP/LNMP架構篇介紹時下企業中最常見的兩種架構的部署與配置,應用服務篇以企業實際運維環境為出發點詳細介紹當下企業用到的各類開源軟件服務,架構運用篇對前三篇的知識進行總結,并結合企業的實際場景加以實踐。
本書既适合在 Linux系統運維方面零基礎的技術人員閱讀,也适合初、中級運維工程師和網絡工程師學習使用。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!