grep命令:查找文件裏符合條件的字符串正則表達式
grep函數用於在文件中查找能夠與模式匹配的文本,並顯示其所在行編輯器
grep函數的模式字符串即爲基礎正則表達式:函數
grep [-acinv] [-AB] [--color=auto] [mode] [file]
選項:spa
-a 將二進制文件當作文本文件處理命令行
-c 統計找到匹配的次數code
-i 忽略大小寫xml
-n 輸出匹配的行號blog
-v 反向查找,即輸出不存在匹配的行ci
-A After,輸出匹配的行後面全部行字符串
-B Before,輸出匹配的行前全部行
--color=auto 將匹配的內容自動使用不一樣顏色顯示
基礎正則表達式:
特定字符串 直接使用單引號括起,特殊字符須要在前面加‘\’轉義,解除其特殊功能。
包含/不包含 某集合的元素
[字符集] 表明字符集中任意一個字符,在表達式中佔一個字符的位置
[^字符集] 表明字符集不包含的任意一個字符,在表達式中佔一個字符的位置
字符集的描述能夠將全部元素寫出,無需分隔符每一個字符即爲一個元素(如:[abc])
也能夠按照語系字符集的順序寫出(如在LANG=C下的[a-z]表示全體小寫英文字母,或[a-z0-9]表示全體小寫字母或者數字)
Linux風格的文本,行首標記爲「^」, 如'^a'表示第一個字符是a的行。行尾標記爲「」,′z」,′z'表示最後一個字符爲z的行
天然地,'^$'表示空行
.
任意單個字符,在表達式中佔一個字符的位置
* 0
至無窮個前一字符的重複,如'a*'表示a後面跟0至無窮個a組成的字符串。
.*
表示任意字符0至無窮次重複,它在正則表達式中表示任意字符串
擴展正則表達式:(grep不支持,使用egrep或grep -E):
+
重複一個或一個以上的前一個字符,如a+
?
0個或一個的前一個字符, 如a?
|
邏輯或
(a|b)
組字符串,表明字符串a或字符串b
(|)+
表示重複1次或以上的組字符串
sed命令:一種在線編輯器,它一次處理一行內容
sed是以行爲單位的支持正則表達式的字符串處理命令
處理時,把當前處理的行存儲在臨時緩衝區中,稱爲'模式空間'(pattern space),接着用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。接着處理下一行,這樣不斷重複,直到文件末尾。文件內容並無改變,除非你使用重定向存儲輸出。
sed [-inefr] {處理命令/腳本文件} [處理文件]
選項:
-n 使用安靜模式。若無此參數來自stdin的數據會所有輸出到屏幕,若使用此參數則只有通過sed處理的行纔會顯示
-e 直接在命令行中輸入處理命令
-f filename 添加腳本文件
-r 啓用擴展正則表達式支持(默認支持基礎正則表達式)
-i 直接將修改寫入文件,默認將其輸出到stdout。
處理命令 '[n1, [n2]]op str' n1,n2表示從n1到n2全部行(閉區間)做爲當前行,op是操做符,str是操做符後所接的字符串