220 likes | 356 Views
Linux 基礎學習. Chapter 12 正規表示法與文件格式化處理. 內容. 前言:什麼是正規表示法 基礎正規表示法 延伸正規表示法 文件的格式化與相關處理. 12.1 前言:什麼是正規表示法. 12.1.1 什麼是正規表示法. 簡單的說,正規表示法就是處理字串的方法,它是以行為單位來進行字串的處理行為,正規表示法透過一些特殊符號的輔助,可以讓使用者輕易的達到 『 搜尋 / 刪除 / 取代 』 某特定字串的處理程序!. 12.1 前言:什麼是正規表示法. 12.1.2 正規表示法對於系統管理員的用途.
E N D
Linux 基礎學習 Chapter 12 正規表示法與文件格式化處理 Linux基礎--正規表示法與文件格式化處理
內容 • 前言:什麼是正規表示法 • 基礎正規表示法 • 延伸正規表示法 • 文件的格式化與相關處理
12.1 前言:什麼是正規表示法 • 12.1.1 什麼是正規表示法 簡單的說,正規表示法就是處理字串的方法,它是以行為單位來進行字串的處理行為,正規表示法透過一些特殊符號的輔助,可以讓使用者輕易的達到『搜尋/刪除/取代』某特定字串的處理程序!
12.1 前言:什麼是正規表示法 • 12.1.2 正規表示法對於系統管理員的用途 那麼為何我需要學習正規表示法呢?對於一般使用者來說,由於使用到正規表示法的機會可能不怎麼多,因此感受不到它的魅力,不過,對於身為系統管理員的你來說,正規表示法則是一個『不可不學的好東西!』怎麼說呢?由於系統如果在繁忙的情況之下,每天產生的訊息資訊會多到你無法想像的地步,而我們也都知道,系統的『錯誤訊息登錄檔案 (第十九章)』的內容記載了系統產生的所有訊息,當然,這包含你的系統是否被『入侵』的記錄資料。 但是系統的資料量太大了,要身為系統管理員的你每天去看這麼多的訊息資料,從千百行的資料裡面找出一行有問題的訊息,呵呵~光是用肉眼去看,想不瘋掉都很難!這個時候,我們就可以透過『正規表示法』的功能,將這些登錄的資訊進行處理,僅取出『有問題』的資訊來進行分析,哈哈!如此一來,你的系統管理工作將會 『快樂得不得了』啊!當然,正規表示法的優點還不止於此,等你有一定程度的瞭解之後,你會愛上它喔!
12.1 前言:什麼是正規表示法 • 12.1.3 正規表示法的廣泛用途 正規表示法除了可以讓系統管理員管理主機更為便利之外,事實上,由於正規表示法強大的字串處理能力,目前一堆軟體都支援正規表示法呢!最常見的就是『郵件伺服器』啦! 如果你留意網際網路上的消息,那麼應該不能發現,目前造成網路大塞車的主因之一就是『垃圾/廣告信件』了,而如果我們可以在伺服器端,就將這些問題郵件剔除的話,用戶端就會減少很多不必要的頻寬耗損了。那麼如何剔除廣告信件呢?由於廣告信件幾乎都有一定的標題或者是內容,因此,只要每次有來信時,都先將來信的標題與內容進行特殊字串的比對,發現有不良信件就予以剔除!嘿!這個工作怎麼達到啊?就使用正規表示法啊!目前兩大郵件伺服器軟體 sendmail 與 postfix 以及支援郵件伺服器的相關分析軟體,都支援正規表示法的比對功能! 當然還不止於此啦,很多的伺服器軟體都支援正規表示法呢!當然,雖然各家軟體都支援它,不過,這些『字串』的比對還是需要系統管理員來加入比對規則的,所以啦!身為系統管理員的你,為了自身的工作以及用戶端的需求,正規表示法實在是很需要也很值得學習的一項工具呢!
12.1 前言:什麼是正規表示法 • 12.1.4 正規表示法與 Shell 在 Linux 當中的角色定位 說實在的,我們在學數學的時候,一個很重要、但是粉難的東西是一定要『背』的,那就是九九乘法表,背成功了之後,未來在數學應用的路途上,真是一帆風順啊!這個九九乘法表我們在小學的時候幾乎背了一整年才背下來,並不是這麼好背的呢!但它卻是基礎當中的基礎!你現在一定受惠相當的多呢 ^_^! 而我們談到的這個正規表示法,與前一章的 BASH 就有點像是數學的九九乘法表一樣,是 Linux 基礎當中的基礎,雖然也是最難的部分,不過,如果學成了之後,一定是『大大的有幫助』的!這就好像是金庸小說裡面的學武難關:任督二脈!打通任督二脈之後,武功立刻成倍成長!所以啦,不論是對於系統的認識與系統的管理部分,它都有很棒的輔助啊!請好好的學習這個基礎吧!^_^
12.1 前言:什麼是正規表示法 • 12.1.5 延伸的正規表示法 正規表示法還有分喔?沒錯喔!正規表示法的字串表示方式依照不同的嚴謹度而分為: 基礎正規表示法與延伸正規表示法。延伸型正規表示法除了簡單的一組字串處理之外,還可以作群組的字串處理,例如進行搜尋 VBird 或 netman 或 lman 的搜尋,注意,是『或(or)』而不是『和(and)』的處理,此時就需要延伸正規表示法的幫助啦!藉由特殊的『 ( 』與『 | 』等字元的協助,就能夠達到這樣的目的!不過,我們在這裡主力僅是介紹最基礎的基礎正規表示法而已啦!好啦!清清腦門,咱們用功去囉!
12.2 基礎正規表示法 • 12.2.1 語系對正規表示法的影響 • LANG=C 時:0 1 2 3 4 ... A B C D ... Z a b c d ...z • LANG=zh_TW時:0 1 2 3 4 ... a A b B c C d D ... z Z
12.2 基礎正規表示法 • 12.2.2grep 的一些進階選項 [root@www ~]# grep [-A] [-B] [--color=auto] '搜尋字串' filename 選項與參數: -A :後面可加數字,為 after 的意思,除了列出該行外,後續的 n 行也列出來; -B :後面可加數字,為 befer 的意思,除了列出該行外,前面的 n 行也列出來; --color=auto 可將正確的那個擷取資料列出顏色
12.2 基礎正規表示法 • 12.2.3 基礎正規表示法練習 • 語系已經使用『 export LANG=C 』的設定值; • grep 已經使用 alias 設定成為『 grep --color=auto 』
12.2 基礎正規表示法 • 12.2.4 基礎正規表示法字符彙整 (characters)
12.2 基礎正規表示法 • 12.2.5sed 工具
12.4 文件的格式化與相關處理 • 12.4.1 格式化列印: printf
12.4 文件的格式化與相關處理 • 12.4.2awk:好用的資料處理工具 1.讀入第一行,並將第一行的資料填入 $0, $1, $2.... 等變數當中; 2.依據 "條件類型" 的限制,判斷是否需要進行後面的 "動作"; 3.做完所有的動作與條件類型; 4.若還有後續的『行』的資料,則重複上面 1~3 的步驟,直到所有的資料都讀完為止。
12.4 文件的格式化與相關處理 • awk 的邏輯運算字元
12.4 文件的格式化與相關處理 • 12.4.3 檔案比對工具 • diff
12.4 文件的格式化與相關處理 • cmp
12.4 文件的格式化與相關處理 • patch
12.4 文件的格式化與相關處理 • 12.4.4 檔案列印準備: pr