文本處理編輯命令sed
sed是一種流編輯器,它是文本處理中非常中的工具,能夠完美的配合正則表達(dá)式使用,功能不同凡響。處理時(shí),把當(dāng)前處理的行存儲在臨時(shí)緩沖區(qū)中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區(qū)中的內(nèi)容,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕。接著處理下一行,這樣不斷重復(fù),直到文件末尾。文件內(nèi)容并沒有 改變,除非你使用重定向存儲輸出。Sed主要用來自動(dòng)編輯一個(gè)或多個(gè)文件;簡化對文件的反復(fù)操作;編寫轉(zhuǎn)換程序等。
命令格式:
sed [選項(xiàng)] ‘(截取的行)[動(dòng)作]' 文件名
選項(xiàng):-n:只把經(jīng)過sed處理的行輸出
-e:允許輸入多條動(dòng)作
-i:sed修改的結(jié)果寫入文件
截取行:(1)直接輸入行號
(2)/正則表達(dá)式/
(3)x,y 從x到y(tǒng)行,也可以用正則取代
(4)x,y! 取反
(5)x~y 從x行開始,步進(jìn)y行
(6)$ 文檔末
動(dòng)作:p 打印 eg: sed -n '(行)p' student.txt
a 行后增加新的一行,i 行前增加新的一行
sed '1,5a =============' student.txt
sed '/正則/a ============' student.txt
d 刪除某行
sed '/正則/d' student.txt
sed '4d' student.txt
c 替換指定行
sed '2c canglaoshi bujigee' student.txt
sed '/正則/c lalalalalalala' student.txt
s 替換指定字符串(替換每行第一個(gè));結(jié)尾g表示每一行所有
sed '/正則(定位行)/s/正則(舊)/abcd(新)/' student.txt
sed 's/正則(舊)/abcd(新)/' student.txt (全文替換)
sed '/www/s/33/000/g' zz_test.txt
操作:{}多個(gè)命令組合,用;分開
sed '{1,20p;s/www/s/33/000//g}'
& 取原字符
sed 's/abc/&def' student.txt (把a(bǔ)bc換成abcdef)
u 字符串首字母改成大寫
sed 's/abc//u&/' student.txt (把a(bǔ)bc改成Abc)
l 字符串首字母改成小寫
U 字符串所有字母改成大寫
sed 's/abc//U&/' student.txt (把a(bǔ)bc改成ABC)
L 字符串所有字母改成小寫
r 將某文件插入到另一文件的指定行中
sed '1r abc.txt' 123.txt (將abc.txt中的內(nèi)容插入到123.txt文件的第1行)
q 退出sed
sed '/false/q' student.txt (找到一個(gè)false就退出sed)
總結(jié)
以上所述是小編給大家介紹的Linux文本處理命令“sed”,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答