linux筆記八(正規表示法與文件格式化處理)

正規表示法並不是一個工具程序, 而是一個字符串處理的標準依據,如果您想要以正規表示法的方式處理字符串,就得要使用支持正規表示法的工具程序才行, 這類的工具程序很多,例如 vi, sed, awk 等等。正規表示法對於系統管理員來說實在是很重要!因爲系統會產生很多的訊息,這些訊息有的重要有的僅是告知, 此時,管理員可以透過正規表示法的功能來將重要訊息擷取出來,併產生便於查閱的報表來簡化管理流程。

grep 的一些進階選項 
grep [-A] [-B] [--color=auto] '搜尋字符串' filename 
選項與參數: 
-A :後面可加數字,爲 after 的意思,除了列出該行外,後續的 n 行也列出來; 
-B :後面可加數字,爲 befer的意思,除了列出該行外,前面的 n 行也列出來;
--color=auto 可將正確的那個擷取數據列出顏色 

行首與行尾字符 ^ $

特別注意,因爲小數點具有其他意義,所以必須要使用跳脫字符(\)來加以解除其特殊意義!

任意一個字符 . 與重複字符 * 
  . (小數點):代表『一定有一個任意字符』的意思; 
  * (星星號):代表『重複前一個 0 到無窮多次』的意思,爲組合形態 

限定連續 RE 字符範圍 {} 

基礎正規表示法字符彙整 (characters) 




強調:『正規表示法的特殊字符』不一般在指令列輸入指令的『通配符』並不相同


sed工具
[root@www ~]# sed [-nefr] [動作] 
選項與參數: 
-n  :使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN  
      的數據一般都會被列出到屏幕上。但如果加上 -n 參數後,則只有經過 
      sed 特殊處理的那一行(或者動作)纔會被列出來。 
-e  :直接在指令列模式上進行 sed 的動作編輯; 
-f  :直接將 sed 的動作寫在一個檔案內, -f filename 則可以執行 filename 內的sed 動作; 
-r  :sed 的動作支持的是延伸型正規表示法的語法。(預設是基礎正規表示法語法) 
-i  :直接修改讀取得檔案內容,而不是由屏幕輸出。 
 
文件的格式化與相關處理
格式化打印:printf


awk:好用的數據處理工具


檔案比對工具
diff
diff 就是用在比對兩個檔案之間的差異的,並且是以行爲單位來比對的!一般是用在 ASCII 純文本檔的
比對上。 
[root@www ~]# diff [-bBi] from-file to-file 
選項與參數: 
from-file :一個檔名,作爲原始比對檔案的檔名; 
to-file   :一個檔名,作爲目的比對檔案的檔名; 
注意,from-file 或 to-file 可以 - 取代,那個 - 代表『Standard input』之意。
-b  :忽略一行當中,僅有多個空白的差異 例如 "about me" 與 "about     me"視爲相同 
-B  :忽略空白行的差異。 
-i  :忽略大小寫的不同。 


cmp
相對於 diff 的廣泛用途, cmp 似乎就用的沒有這麼多了~ cmp 主要也是在比對兩個檔案,他主要利
用『字節』單位去比對。
[root@www ~]# cmp [-s] file1 file2 
選項與參數: 
-s  :將所有的不同點的字節處都列出來。因爲 cmp 預設僅會輸出第一個發現的不同點。
  
patch
patch 指令可以將舊版數據更新到新版 (主要由 diff 建立 patch 的補丁來源檔案) 
[root@www ~]# patch -pN < patch_file    <==更新 
[root@www ~]# patch -R -pN < patch_file <==還原 
選項與參數: 
-p  :後面可以接『取消幾層目錄』的意思。 
-R  :代表還原,將新的文件還原成原來舊的版本。 


檔案打印準備:pr
如果我是在 Linux 底下打印純文本檔呢 可不可以具有標題啊?可不可以加入頁碼啊?呵呵!當然可以啊!使用 pr 就能夠達到這個功能了。


基礎正規表示法的特殊字符有: *, ?, [], [-], [^], ^, $ 等! 
常見的正規表示法工具有: grep , sed, vim 等等 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章