以行為單位,逐行進行處理。預設只輸出與表示式相匹配的文字行
egrep [選項] '正規表示式' 檔案...
前置命令 | egrep [選項] '正規表示式'
忽略大小寫
條件取反
統計匹配的行數
egrep -c "." /etc/passwd#統計passwd有多少行
靜默,不輸出任何資訊。可通過$?看結果是否正確
顯示出匹配結果所在的行號
只輸出匹配的內容,不是一行
輸出匹配key關鍵字及關鍵字下面的n行
輸出匹配key關鍵字及關鍵字上面的n行
輸出匹配key關鍵字及關鍵字上下的n行
正規表示式使用一串特殊符號來描述有共同屬性的的資料,一共有11個符號。
它相當於計算機世界裡面的英語,即計算機裡面的通用語言!
優點:相容性強
缺點:書寫麻煩
優化基本正則、新增新的元字元。
優點:書寫簡單
缺點:相容性差,grep就不支援
stream editor,流式編輯器。
非互動,基於模式匹配過濾及修改文字。一行一行讀取,逐行處理,並將結果輸出到螢幕。可實現對文字的輸出、刪除、替換、複製、剪下、匯入、匯出等各種操作。
sed [選項] '編輯指令' 檔案
前置命令 | sed [選項] '編輯指令'
選項:n,r,i
編輯指令:[定址符]處理動作
定址符:[條件1[,條件2]]
條件:行號或者/正則/
處理動作:p,d,s,a,i,c,r,w,h,h,g,g
舉例:sed -n '/^root/p' /etc/passwd #列印passwd檔案中以root開頭行
遮蔽預設輸出
支援擴充套件正規表示式,若與其他選項共用,必須作為首個選項
對原始檔進行實際操作
同時對a.txt做三個操作
列印sed '3,5p' a.txt
列印a.txt的第3行,第5行
刪除替換關鍵字
在行號下面插入新的一行,如果行號為2,那麼插入的行就是第3行
還可以插入多行,行之間用"\"連線
sed -i '1askip-networking' /etc/my.cnf#在第一行後面插入新行,內容為skip-networking
替換行號所在的一行,原來的行變成下一行,如果行號為2,那麼插入的行就變成了第2行,原來的行變成了第3行
整行替換
sec '1c string' #把第一行替換為string
sed 3r c.txt
讀取c.txt檔案,把內容插入第3行之後
sed 1,3w c.txt#把1-3行另存為c.txt檔案
sed 'w a.txt' c.txt#全文複製c.txt的內容到a.txt
sed複製貼上功能
模式空間:存放當前處理的行,將處理結果輸出。若當前行不符合處理條件,則原樣輸出。處理完當前行之後再讀入下一行
保持空間:作用類似於貼上板,預設存放乙個空行(\n)
h命令的功能:拷貝模式空間的內容,追加貼上到保持空間。保持空間裡面的空行不會被覆蓋
h命令的功能:拷貝模式空間的內容,覆蓋貼上到保持空間。保持空間裡面的空行被覆蓋
g命令的功能:拷貝保持空間的內容,追加貼上到模式空間
g命令的功能:拷貝保持空間的內容,覆蓋貼上到模式空間
示例:sed '1,3h;$g' reg.txt #把1-3行的內容追加貼上到檔案末尾
sed '1h;1d;$g' reg.txt #把第1行剪下到檔案末尾
sed '1h;2h;1,2d;$g' reg.txt #把1,2行剪下,貼上到原第3行後面
替換每行的第1個old為new
替換每行的第3個old為new
替換全部的old為new
()保留,複製
\貼上最多可以記住9個
素材檔案test.txt
ni hao nb
welcome to beijing
把第乙個字元和最後乙個字元對調
sed -r 's/^(.)(.*)(.)$/\3\2\1/' test.txt
把第乙個字元括起來,把中間任意字元括起來,再把最後乙個字元括起來。這樣就有3個括號,序號從1-3,把3和1對調就實現了
把第二個字元和倒數第二個字元對調
sed -r 's/^(.)(.)(.*)(.)(.)$/\1\4\3\2\5/' test.txt
把doc替換為docs
將4-7行注釋掉
輸出第4行及後面的10行,一共11行
刪除最後一行
刪除全部空行
刪除不包含xml的行。!表示取反
查詢能夠登入系統的使用者名稱
a=sed -n /bash$/s#:.*##p /etc/passwd
for i in $a
dop1=grep "$i" /etc/shadow
p2=$
p3=$
echo $p3
done
egrep 正規表示式
egrep 正規表示式 用正規表示式在檔案或輸入中搜尋匹配的字串,並列印出匹配的行。egrep匹配之前,會刪除每行結尾的換行符。grep option pattern file option 是選項,如 i 匹配時忽略大小寫 pattern 是正規表示式,需要用單引號擴起來 file 是檔案,可以同...
擴充套件正規表示式 egrep
grep 命令僅支援基礎正規表示式,如果使用擴充套件正規表示式,需要使用 egrep 或 awk 命令。這裡我們直接使用 egrep 命令。egrep 命令與 grep 命令的用法基本相似。egrep 命令是乙個搜尋檔案獲得模式,使用該命令可以搜尋檔案中的任意 字串和符號,也可以搜尋乙個或多個檔案的...
egrep及擴充套件正規表示式
正規表示式 basic regexp 基本 extended regexp 擴充套件 grep 使用基本正規表示式定義的模式來過濾文字的命令 e 使用擴充套件正規表示式 a after 後 行 b before 前 行 c 前後各 行 擴充套件正規表示式 字元匹配 匹配任意單個字元 匹配指定範圍內的...