2010.7.11
文件內容查詢命令:grep,egrep,fgrep
grep:
Global search Regular Expression and Print out the line(全面搜索正則表達式並打印之)
grep是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。grep會對匹配一個或多個正則表達式(pattern)的文本進行搜索,並只輸出匹配的文本而不影響原有內容。
命令格式: grep [option] [pattern] [file1,file2,…]
常用選項:
-c 只顯示匹配行的數量
-i 不區分大小寫
-n 對匹配到的行進行編輯
-v 只顯示不匹配的行
grep常用元字符:
v ^ 錨定行的開始
v $ 錨定行的結束
v . 匹配一個非換行符的字符
v * 匹配零個或多個先前字符
v [ ] 匹配一個指定範圍內的字符
v \< 錨定單詞的開始
v \> 錨定單詞的結束
v \b 單詞鎖定符,如: '\bgrep\b'只匹配grep
v \w 匹配文字和數字字符,也就是[A-Za-z0-9_]
v x\{m\} 重複字符x,m次,如:'0\{5\}'匹配包含5個0的行
grep 命令一次只能搜索一個指定的模式。爲了可以指定多模式,我們可以用egrep。egrep命令檢索擴展的正則表達式(包括表達式組和可選項), egrep等價於 grep –E
egrep新增的元字符:
v + 匹配一個或多個加號前的字符
v ? 匹配零個或一個前導字符
v a|b 匹配a或b
v * 匹配零個或多個先前字符
v ( ) 字符組
fgrep 命令檢索固定字符串,它不識別正則表達式,是快速搜索命令。
文本處理命令:sort,uniq
sort命令的功能是對文件中的各行進行排序
格式:sort [opt] file1,file2…
根據從輸入行抽取的一個或多個關鍵字進行比較來完成排序,默認以整行爲關鍵字按ASCII字符順序進行排序。
sort常用選項:
v -o 輸出文件 將排序輸出寫到輸出文件中而不是標準輸出
v -f 忽略字母的大小寫
v -r 按逆序輸出排序結果
uniq命令用以刪除指定文件中重複的行
格式: uniq [opt] filename
常用選項:
v -c 顯示輸出中,在每行行首加上本行在文件中出現的次數
v -d 只顯示重複行
v -u 只顯示文件中不重複的各行
文件比較和應用更改命令:比較命令diff,應用更改命令patch。
diff:用以逐行比較兩個文本文件,並列出其不同之處。
格式:diff [opt] from_file to_file
常用選項:
v -b 忽略行尾空格,且視字符串中的多個空格爲1個
v -c 採用上下文件輸出格式
v -C n 採用上下文格式輸出,且只提供n行上下文
v -u 採用統一輸出格式
v -r 當指定from_file和to_file爲目錄時,則遞歸比較目錄中
的文件
patch:通過讀入patch命令文件(可以從標準輸入),對目標文件進行修改。通常patch使用diff的結果來完成打補丁的工作
格式:patch [options] [originalfile] [patchfile
如果需要修改的是目錄,一般都必須在patchfile中記錄目錄下的各個文件名;絕大多數情況下,patch都用以下這種簡單的方式使用:
patch -p[num] <patchfile
-p 0 使用完整路徑名
-p 1 除去前導斜槓
-p n 除去前導n個斜槓