sed
stream editor肴颊,流編輯器
屬于行編輯器,默認(rèn)不編輯原文件渣磷,僅對(duì)模式空間中的數(shù)據(jù)做處理婿着;而后,處理結(jié)束后醋界,將模式空間打印至屏幕竟宋。
模式空間:內(nèi)存中按某種模式(如,逐行)讀取文件并進(jìn)行編的空間形纺。
編輯器有全屏編輯器(vi)和行編輯器(sed)兩種丘侠。
sed [OPTIONS] 'AddressCommand' file ...
選項(xiàng) -n,靜默模式逐样,不再默認(rèn)顯示模式空間中的內(nèi)容婉陷,而是顯示符合條件的行。
選項(xiàng) -i 官研,修改原文
選項(xiàng) -e SCRIPT -e SCRIPT,可以同時(shí)執(zhí)行多個(gè)腳本
選項(xiàng) -f /PATH/TO/SED_SCRPT闯睹,用SED_SCRIPT里的命令逐行處理文件
選項(xiàng) -r 戏羽,使用擴(kuò)展正則表達(dá)式
Address
? 1、Start line ,End line
10,100楼吃,10-100行
$ 最后一行
$-1 倒數(shù)第二行
? 2始花、/RegExp/ ,正則表達(dá)式
/^root/孩锡,所有以root開(kāi)頭的行
若需用到元字符的本意酷宵,在其之前加\,進(jìn)行轉(zhuǎn)義躬窜。比如浇垦,需搜索含/的行,模式為/\//荣挨。
? 3男韧、/pattern1/,/pattern2/
第一次被pattern1匹配到的行開(kāi)始,第一次被pattern2匹配到的行結(jié)束默垄,其間所有行此虑。
? ? 4、LineNumber口锭,指定的行
? ? 5朦前、Start Line,+n
Command
? 1、d,刪除符合條件的行
? 2韭寸、p春哨,顯示符合條件的行
? 3、a \"STRING"棒仍,在指定的行后面追加新行悲靴,追加內(nèi)容為STRING;若需換行莫其,使用換行符\n癞尚。
? 4、i \"STRING"乱陡,在指定的行前面添加新行浇揩,追加內(nèi)容為STRING;若需換行憨颠,使用換行符\n胳徽。
? 5、r FILE爽彤,將指定文件的內(nèi)容添加至目標(biāo)行處
? 6养盗、w FILE ,將地址指定的范圍內(nèi)的內(nèi)容另存至指定的文件中
? 7适篙、s /pattern/STRING/往核,查找并替換
(pattern可以使用正則表達(dá)式的元字符,string不行嚷节;若需用到元字符的本意聂儒,在其之前加\,進(jìn)行轉(zhuǎn)義)不指定行硫痰,默認(rèn)全文衩婚。
默認(rèn)只替換每行中第一次被匹配到的字符串。
加修飾符(于最后):
g 全局替換效斑。如:'s/@/@#@g'非春,把全文里,每行所有的/換成#缓屠。
i 忽略字符大小寫(xiě)
s///=@###=s@@@
& 税娜,String使用pattern引用內(nèi)容
\(string\),后向引用藏研,\1敬矩,