grep命令:該命令用來在文字檔中查找指定模式的詞或短語,並在標準輸出上顯示包括給定字串模式的所有行。該命令組包含三個命令:grep,egrep 和 fgrep 命令。grep命令一次只能搜索一個指定的模式;egrep命令等同於grep -E,可以使用擴展的字串模式進行搜索;fgrep命令等同於grep -F,是快速搜索命令,它檢索固定字串,但不識別規則運算式。

一般格式:
grep [選項] 查找模式[檔案名1,檔案名2,…] grep[選項] [-e查找模式| -f 檔][檔案名1,檔案名2,…]

說明:這組命令在指定檔中搜索特定模式及定位特定主題等方面用途很大。要搜索的模式被看做是一些關鍵字,查看指定的檔中是否包含這些關鍵字。這三個命令的功能類似,但由於可以搜索的模式不同,因此在功能強弱上有所差別。

如果沒有指定檔,它們就從標準輸入中讀取。在正常情況下,每個匹配的行被顯示到標準輸出上。如果要搜索的檔不止一個,則在每一行輸出之前加上檔案名。

常用選項:
-E 將查找模式解釋成擴展的規則運算式。
-F 將查找模式解釋成單純的字串。
-b,--byte-offset 在輸出的每一行前面顯示包含匹配字串的行在檔中的位置,用位元組偏移量來表示。
-c,--count 只顯示檔中包含匹配字串的行的總數。
-f FILE 從檔FILE中獲取模式,每行一個。空檔不含模式,因此,不做匹配。
-i 匹配比較時不區分字母的大小寫。
-r 以遞迴方式查詢目錄下的所有子目錄中的檔。
-n 在輸出包含匹配模式的行之前,加上該行的行號(檔首行的行號為1)。
-v 只顯示不包含匹配字串的文本行。
-x 只顯示整個行都嚴格匹配的行。

注意事項:
①在命令名之後先輸入搜索的模式,然後是要搜索的檔。
②在檔案名列表中可以使用萬用字元,如”*”等。
③要查找目錄的子目錄中的檔,應使用”-r”選項。
④如果在搜索模式的字串中包含空格,應用單引號把模式字串括起來。
⑤利用選項”-f”可以大批地在檔中搜索字串。

示例:
①在密碼檔/etc/passwd中查找包含”mengqc”的所有行:
# grep -F mengqc /etc/passwd
mengqc:x:500:100:mengqc:/home/mengqc:/bin/bash
②在mengqc目錄和子目錄下的所有檔中查找字串”print”出現的次數:
# grep –r ‘print’ mengqc
③在檔f1和f2中查找包含”main”或者”printf”的所有行,不管首字母的大小寫:
# grep –E ‘[Mm]ain | [Pp]rintf’ f1 f2
或者
# grep –i ‘main | printf’ f1 f2

sort命令:命令用來對文字檔的各行進行排序。

一般格式:sort [選項] 檔清單
說明:sort命令將逐行對指定檔中的所有行進行排序,並將結果顯示在標準輸出上。如果不指定檔或者使用“一”表示檔,則排序內容來自標準輸入。排序比較是依據從輸入檔的每一行中提取的一個或多個排序鍵進行的。排序鍵定義了用來排序的最小的字元序列。在預設情況下,排序鍵的順序由系統使用的字元集決定。
選項:
-m 對己經排好序的檔統一進行合併,但不做排序。
-c 檢查給定的檔是否己排好序,若沒有,則顯示出錯消息,不做排序。
-u與-c 選項一起用,嚴格地按順序檢查;否則,對排序後的重複行只輸出第一行。
-o 檔案名 將排序輸出放到該檔案名所指定的檔中。如果該檔不存在,則創建一
個新文件。
改變排序規則的選項主要有:
-d 按字典順序排序,比較時僅考慮空白符和字母數字元。
-f 忽略字母的大小寫。
-i 忽略非列印字元。
-M 規定月份的比較次序是(未知)<”JAN”<”FEB”<…<”DEC”。
-r 按逆序排序。默認排序輸出是按昇冪排序的。
-k n1[,n2] 指定從文本行的第n1欄位開始至第n2欄位(不包括第n2欄位)中間的內容作為排序鍵。如果沒有n2,則關鍵字是從第n1個欄位到行尾的所有欄位。n1和n2可以是小數形式。如”x.y”,x表示第x欄位,y表示第x欄位中的第y個字元。欄位和字元的文職都是從1開始算起的。
-b 比較關鍵字時忽略前導的空白符(空格或定位字元)。
-t 字元將指定的“字元”作為欄位間的分隔符號。
示例:
①對more_h10檔排序:
# head mfile>more_h10 (將文件mfile的前10行定向到文件moreeeh10中)
# sort more_h10
②以第3個欄位作為排序鍵,對檔more_h10排序:
# sort –k2,3 more_h10

uniq命令:該命令從排好序的文件中去除重複行。
一般格式:uniq [選項] 檔
說明:uniq命令讀取輸入文件,並比較相鄰的行,去掉重複的行一行。該命令加工後的結果寫到輸出檔中。輸入檔和輸出檔必須不同。用“一”表示,則從標準輸入上讀取。
選項:
-c 顯示輸出時,在每行的行首加上該行在檔中出現的次數。
-d 只顯示重複行。
-f --skip-fields=N  忽略比較前N個欄位。
-s --skip-chars=N 忽略比較前N個欄位。
-u 只顯示檔中不重複的行。
實例:
# uniq –u ex3  (顯示檔ex3中不重複的行)

 

By tony

自由軟體愛好者~喜歡不斷的思考各種問題,有新的事物都會想去學習嘗試 做實驗並熱衷研究 沒有所謂頂天的技術 只有謙虛及不斷的學習 精進專業,本站主要以分享系統及網路相關知識、資源而建立。 Github http://stnet253.github.io

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料