sed是一個(gè)功能十分強(qiáng)大的文本處理命令,本文主要介紹一些常用的文本處理方法。
?sed [-nefri] ‘command’ 輸入文本/文件
?-n∶取消默認(rèn)的輸出,使用安靜(silent)模式。
-e∶進(jìn)行多項(xiàng)編輯,即對(duì)輸入行應(yīng)用多條sed命令時(shí)使用. 直接在指令列模式上進(jìn)行 sed 的動(dòng)作編輯
-f∶指定sed腳本的文件名. 直接將 sed 的動(dòng)作寫在一個(gè)檔案內(nèi), -f filename 則可以執(zhí)行 filename 內(nèi)的sed 動(dòng)作
-r∶sed 的動(dòng)作支援的是延伸型正則表達(dá)式的語(yǔ)法。(預(yù)設(shè)是基礎(chǔ)正則表達(dá)式語(yǔ)法)
-i∶直接修改讀取的文件內(nèi)容,而不是由屏幕輸出
p∶ 列印,亦即將某個(gè)選擇的資料印出。通常 p 會(huì)與參數(shù) sed -n 一起用
?i ∶ 插入, i 的后面可以接字串,而這些字串會(huì)在新的一行出現(xiàn)(目前的上一行)
?a ∶ 新增, a 的后面可以接字串,而這些字串會(huì)在新的一行出現(xiàn)(目前的下一行)
?d ∶ 刪除linux常用命令,因?yàn)槭莿h除,所以 d 后面通常不接任何內(nèi)容
?c ∶ 取代, c 的后面可以接字串,這些字串可以取代 n1,n2 之間的行
?s∶ 取代,可以直接進(jìn)行替換的工作。通常這個(gè) s 的動(dòng)作可以搭配正則表達(dá)式。例如 1,20s/old/new/g
?/ /: 模式匹配
直接修改文件,不帶該選項(xiàng)是不會(huì)操作文件,只會(huì)顯示處理結(jié)果
[root@smart Desktop]# cat test.log
Apr 21 15:34:49 smart root: hello
Apr 21 15:34:59 smart root: hello2
Apr 22 15:45:55 smart test1.bin: test1.c main 15
Apr 22 15:46:08 smart test1.bin: test1.c main 15
[root@smart Desktop]# sed "s/root/user/g" test.log
Apr 21 15:34:49 smart user: hello
Apr 21 15:34:59 smart user: hello2
Apr 22 15:45:55 smart test1.bin: test1.c main 15
Apr 22 15:46:08 smart test1.bin: test1.c main 15
[root@smart Desktop]# cat test.log
Apr 21 15:34:49 smart root: hello
Apr 21 15:34:59 smart root: hello2
Apr 22 15:45:55 smart test1.bin: test1.c main 15
Apr 22 15:46:08 smart test1.bin: test1.c main 15
[root@smart Desktop]# sed -i "s/root/user/g" test.log
[root@smart Desktop]# cat test.log
Apr 21 15:34:49 smart user: hello
Apr 21 15:34:59 smart user: hello2
Apr 22 15:45:55 smart test1.bin: test1.c main 15
Apr 22 15:46:08 smart test1.bin: test1.c main 15
上一個(gè)教程:Linux基本指令(文件目錄類)
下一個(gè)教程:運(yùn)維中常用Linux命令及運(yùn)維工具