grep 的一些進階選項
grep [-A] [-B] [--color=auto] '搜尋字符串' filename
選項與參數:
-A :後面可加數字,爲 after 的意思,除了列出該行外,後續的 n 行也列出來;
-B :後面可加數字,爲 befer的意思,除了列出該行外,前面的 n 行也列出來;
--color=auto 可將正確的那個擷取數據列出顏色
行首與行尾字符 ^ $
特別注意,因爲小數點具有其他意義,所以必須要使用跳脫字符(\)來加以解除其特殊意義!
任意一個字符 . 與重複字符 *
. (小數點):代表『一定有一個任意字符』的意思;
* (星星號):代表『重複前一個 0 到無窮多次』的意思,爲組合形態
限定連續 RE 字符範圍 {}
基礎正規表示法字符彙整 (characters)
強調:『正規表示法的特殊字符』不一般在指令列輸入指令的『通配符』並不相同
[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 等等