LINUX sed命令的使用
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
a\ 在當(dāng)前?下?插??本迟杂。
i\ 在當(dāng)前?上?插??本。
c\ 把選定的?改為新的?本。
d 刪除抹锄,刪除選擇的?。
D 刪除模板塊的第??。
s 替換指定字符
l 列表不能打印字符的清單斟湃。
n 讀取下?個(gè)輸??,?下?個(gè)命令處理新的??不是?第?個(gè)命令檐薯。
N 追加下?個(gè)輸??到模板塊后?并在?者間嵌??個(gè)新?凝赛,改變當(dāng)前?號(hào)碼。
p 打印模板塊的?坛缕。
P(?寫) 打印模板塊的第??墓猎。
q 退出Sed。
w file 寫并追加模板塊到file末尾祷膳。
W file 寫并追加模板塊的第??到file末尾陶衅。
g 表??內(nèi)全?替換屡立。
p 表?打印?直晨。
w 表?把?寫??個(gè)?件搀军。
x 表?互換模板塊中的?本和緩沖區(qū)中的?本。
y 表?把?個(gè)字符翻譯為另外的字符(但是不?于正則表達(dá)式)
\1 ?串匹配標(biāo)記
& 已匹配字符串標(biāo)記
^ 匹配?開始勇皇,如:/^sed/匹配所有以sed開頭的?罩句。
$ 匹配?結(jié)束,如:/sed$/匹配所有以sed結(jié)尾的?敛摘。
. 匹配?個(gè)?換?符的任意字符门烂,如:/s.d/匹配s后接?個(gè)任意字符,最后是d兄淫。
* 匹配0個(gè)或多個(gè)字符屯远,如:/*sed/匹配所有模板是0個(gè)或多個(gè)空格后緊跟sed的?。
[] 匹配?個(gè)指定范圍內(nèi)的字符捕虽,如/[sS]ed/匹配sed和Sed慨丐。
[^] 匹配?個(gè)不在指定范圍內(nèi)的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的?個(gè)字?開頭泄私,緊跟ed的?房揭。
\(..\) 匹配?串,保存匹配的字符晌端,如s/\(love\)able/\1rs捅暴,loveable被替換成lovers。
& 保存搜索字符?來替換其他字符咧纠,如s/love/**&**/蓬痒,love這成**love**。
\< 匹配單詞的開始惧盹,如:/\<love/匹配包含以love開頭的單詞的?乳幸。
\> 匹配單詞的結(jié)束,如/love\>/匹配包含以love結(jié)尾的單詞的?钧椰。
x\{m\} 重復(fù)字符x粹断,m次,如:/0\{5\}/匹配包含5個(gè)0的?嫡霞。
x\{m,\} 重復(fù)字符x瓶埋,?少m次,如:/0\{5,\}/匹配?少有5個(gè)0的?诊沪。
x\{m,n\} 重復(fù)字符x养筒,?少m次,不多于n次端姚,如:/0\{5,10\}/匹配5~10個(gè)0的?晕粪。
正則表達(dá)式 \w\+ 匹配每?個(gè)單詞,使? [&] 替換它渐裸,& 對(duì)應(yīng)于之前所匹配到的單詞:
echo this is a test line | sed 's/\w\+/[&]/g'
[this] [is] [a] [test] [line]
所有以192.168.0.1開頭的?都會(huì)被替換成它?已加localhost:
sed 's/^192.168.0.1/&localhost/' file
192.168.0.1localhost
匹配給定樣式的其中?部分:
echo this is digit 7 in a number | sed 's/digit \([0-9]\)/\1/'
this is 7 in a number
命令中 digit 7巫湘,被替換成了 7装悲。樣式匹配到的?串是 7,\(..\) ?于匹配?串尚氛,對(duì)于匹配到的第?個(gè)?串就標(biāo)記為 \1诀诊,依此類
推匹配到的第?個(gè)結(jié)果就是 \2,例如:
echo aaa BBB | sed 's/\([a-z]\+\) \([A-Z]\+\)/\2 \1/'
BBB aaa
所有在模板test和check所確定的范圍內(nèi)的?都被打釉乃弧:
sed -n '/test/,/check/p' file
打印從第5?開始到第?個(gè)包含以test開始的?之間的所有?:
sed -n '5,/^test/p' file
對(duì)于模板test和west之間的?属瓣,每?的末尾?字符串a(chǎn)aa bbb替換:
sed '/test/,/west/s/$/aaa bbb/' file
-e選項(xiàng)允許在同???執(zhí)?多條命令:
sed -e '1,5d' -e 's/test/check/' file
上?sed表達(dá)式的第?條命令刪除1?5?,第?條命令?check替換test讯柔。命令的執(zhí)?順序?qū)Y(jié)果有影響抡蛙。如果兩個(gè)命令都是替換
命令,那么第?個(gè)替換命令將影響第?個(gè)替換命令的結(jié)果魂迄。
和 -e 等價(jià)的命令是 --expression:
sed --expression='s/test/check/' --expression='/love/d' file
>gi|1002620271|ref|NC_029525.1| Coturnix japonica isolate 7356 chromosome 10, Coturnix japonica 2.0, whole genome shotgun sequence
TACTCCCCAAGAA
通過sed命令溜畅,將其更改為
>NC_029525.1
TACTCCCCAAGAA
命令如下:
sed 's/^[^ ]*[|]\([^|]*\)[|].*$/>\1/' original.fasta > updated.fasta
命令拆解:
該命令通過貪婪匹配匹配倒數(shù)第二個(gè)|,為了保險(xiǎn)采用[|],[|]限定匹配內(nèi)容极祸,最后\1調(diào)用匹配行的子串
貪婪匹配符:"." "+" "*"
非貪婪匹配:"?"
http://man.linuxde.net/sed