sed
d命令刪除行
sed '2d' filename #刪除第2行丐吓,打印除第2行外文本
sed '2,4d' filename #刪除第2到第4行
sed '$d' filename #刪除最后1行
sed '2!d' filename #刪除除第2行以外所有行趟据,即只保留第2行
sed '/human/d' filename #刪除包含human的行,第4&5行被刪除
sed '/^2/d' filename #刪除以2開頭的行
sed '/test$/d' filename #刪除以test結(jié)尾的行
sed '/^$/d' filename #刪除空行
s命令查找替換
sed 's/RNA/DNA/' filename #s默認(rèn)只替換每一行第一次匹配到的內(nèi)容
sed 's/RNA/DNA/g' filename #利用g選項(xiàng)粘衬,表示全局匹配咳促,替換所有能夠匹配到的值
sed 's/RNA/DNA/n' filename #替換每一行第n個(gè)匹配值
sed 's/RNA//g' filename #將RNA替換成空稚新,即刪除所有RNA
sed 's/;$/./g' filename #將所有結(jié)尾處的‘跪腹;’換成‘.’
y命令字符轉(zhuǎn)換
sed 'y/RNA/WDY/' filename #將R替換成W,N替換成D屯阀,A替換成Y
上面的例子可能會(huì)讓你誤解這和查找替換不是一樣的嗎?那換個(gè)例子
sed 'y/01234/ABCDE/' filename #將0替換成A难衰,將1替換成2……
#所有的1都被替換成了A……以此例推逗栽。
sed 'y/RNA/WD/' filename #如果前后對(duì)應(yīng)的字符數(shù)不一致則會(huì)報(bào)錯(cuò)盖袭。
p命令打印
-n參數(shù)表示不打印沒處理的行
sed 'p' filename #無-n參數(shù) 將各行打印2行
sed -n 'p' filename #有-n參數(shù) 打印全部列
sed '1p' filename 將第一行打印2行
sed -n '1p' filename #只打印第一段
a/i命令插入文本
sed '3 i line3' filename # i表示在行之前插入
sed '/3#/ i line' filename # 匹配第3行彼宠,在第3行前插入
sed '3 a LINE' filename # a表示在行之后插入
n命令讀取下一行,用下一個(gè)命令處理新的行
sed '/1#/ {n; s/RNA/DNA/g}' filename
#首先匹配1#即第1行醇蝴,然后替換命令處理下一行即第2行
#可以看出想罕,n命令是兩行為一個(gè)單位進(jìn)行處理的悠栓,其中第一行為匹配行而非處理行按价。
一次執(zhí)行多個(gè)命令
sed 's/RNA/DNA/g; y/12345/ABCDE/' filenam
&元字符保存搜索字符用來替換其他字符
sed 's/RNA/&AA/g' filename #在RNA后添加AA
sed '/RNA/ {s//&AA/g}' filename #作用同上
=命令打印被處理行行號(hào)及內(nèi)容
sed '/RNA/ {s//&AA/g; =}' filename #第5行未被處理,因此不打印第5行行號(hào)
q命令退出
sed '2q' filename #打印前2行后退出