sed與grep比較,sed能實現grep功能,可是比較麻煩,並且沒有顏色顯示;sed優點在於替換一些指定的字符。正則表達式
用sed實現grep匹配的功能,匹配關鍵詞用//,-n做用是隻顯示咱們要打印的行vim
sed還支持. * +spa
sed -nr '/o{2}/'p test.txt,匹配兩次o對象
sed -nr '/root|Bus/'p test.txt,匹配或者的用法字符串
sed -n '2'p test.txt ,打印指定的行; sed -n '2,5'p test.txt,打印2-5行;sed -n '25,$'p test.txt,打印25行到末行,$表示末行test
sed -n '1,$'p test.txt,所有打印出來sed
sed -e用法,在一行裏執行多條命令grep
sed -e '1'p -e '/bus/'p -n test.txt,先打印第一行,而後再匹配含有bus的行im
sed -e '1'p -e '/root/'p -e '/oo*/'p -n test.txt ,執行多條命令英文
sed -n '/bus/'Ip test.txt,匹配不區分大小寫
sed刪除指定的行
sed '1,25'd test.txt,刪除打印出來的1-25行,實際上並無刪掉文件內容
加上-i,能夠直接刪除文件內容
sed查找替換,與vim相似;sed '1,10s/root/toor/g' test.txt,s表示替換關鍵詞,g表示全局替換
sed -r '1,10s/ro+/r/g' test.txt,替換的字符串能識別正則表達式
head test.txt |sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/' ,替換每行第一段和最後一段字符串的位置,以冒號爲參考對象,小括號裏的內容用\一、\二、\3表示
head tset.txt |sed 's/\/root/123/g',將/root替換成123,要用脫義符號/
或者把分隔符/換成#和@來區分
sed 's/[a-zA-Z]//g'刪除文件中全部英文字母
sed -r 's/(.*)/aaa:&/' ,在全部行前面加上固定字符串,&表示前面小括號內的內容