sed概念
sed是一種流編輯器,流編輯器會在編輯器處理數(shù)據(jù)之前基于預(yù)先提供的一組規(guī)則來編輯數(shù)據(jù)流。
sed編輯器可以根據(jù)命令來處理數(shù)據(jù)流中的數(shù)據(jù),這些命令要么從命令行中輸入,要么存儲在一個命令文本文件中。
sed 的工作流程:
包括讀取,執(zhí)行和顯示三個過程
- 讀?。簊ed從輸入流(文件,管道,標(biāo)準(zhǔn)輸入)中讀取一行內(nèi)容并存儲到臨時的緩沖區(qū)中(又稱模式空間,patterb space)。
- 執(zhí)行:默認(rèn)情況下,所有的sed命令都在模式空間中順序的執(zhí)行,除非指定了行的地址,否則sed命令會將所有的行上依次執(zhí)行
- 顯示:發(fā)送修改后的內(nèi)容到輸出流,在發(fā)送數(shù)據(jù)后,模式空間會被清空,在所有的文件內(nèi)容都被處理完成之前,上述過程將重復(fù)執(zhí)行,直到所有內(nèi)容被處理完畢。
在所有的文件內(nèi)容都被處理完成之前,上述過程將重復(fù)執(zhí)行,直到所有內(nèi)容處理完。
注意:默認(rèn)情況下所有的sed命令都是在模式空間中執(zhí)行的,因此輸入的文件并不會發(fā)生改變,除非是用重定向存儲輸出。
命令格式:
sed -n “操作” 文件一 文件二
sed -n -e “操作” 文件一 文件二
sed -f 腳本文件 文件一 文件二
sed -i -e “操作” 文件一 文件二
常用選項:
選項 | 作用 |
---|---|
-e: | 使用指定命令來處理輸入的文本文件,只有一個操作命令時可以省略,一般在執(zhí)行多個操作命令使用 |
-f: | 表使用指定的腳本文件來處理輸入的文本文件 |
-h: | 顯示幫助 |
-n : | 禁止sed編輯器輸出,但可以與p命令一起使用完成輸出 |
-i : | 直接修改目標(biāo)文本文件 |
常用操作:
選項 | 作用 |
---|---|
s : | 替換, 替換指定的字符 |
d : | 刪除,刪除選定的行 |
a : | 增加,在當(dāng)前行下面增加一行指定內(nèi)容 |
i : | 插入,在當(dāng)前行上面增加一行指定內(nèi)容 |
c : | 替換,將選定行替換為指定內(nèi)容 |
y : | 字符轉(zhuǎn)換,轉(zhuǎn)換前后的字符長度必須相同 |
示例:
打印
‘=’ 打印行號
‘l’ (小寫的L)打印數(shù)據(jù)流中文本喝不可打印的ASCII字符(比如結(jié)束符$,制表符\t)
擴(kuò)展:使用兩個命令時表示方法
方法一:方法二:
方法三:
使用地址:
sed編輯器有兩種尋址方式:
- 以數(shù)字形式表示行區(qū)間
- 用文本模式來過濾出行
示例: 打印出某一行的內(nèi)容
打印前5行信息后自動退出,q代表退出
打印出奇偶數(shù)行,n表示移動到下一行
-r 表示支持?jǐn)U展正則表達(dá)式
刪除
示例:
刪除空行
替換:
行范圍 s/就字符串/新字符串/替換標(biāo)記
4中替換標(biāo)記
數(shù)字 | 表明新字符串將替換第幾處匹配的地方 |
---|---|
g | 表明新字符串將會替換所有匹配的地方 |
p | 打印與替換命令匹配的行,與-n一起使用 |
w文件 | 將替換的結(jié)果寫到文件中 |
示例:
調(diào)用腳本文件來處理文件
將文件寫入新的文件中
插入:
c進(jìn)行 行替換
y將字符進(jìn)行替換,一 一對應(yīng)
a 在行的下面插入一個新行
i 在指定行的上面插入新行
r 調(diào)用文件將文件插入到行下面
H代表剪切,d代表刪除,G代表粘貼
剪切
復(fù)制
文章來源:http://www.zghlxwxcb.cn/news/detail-447002.html
將字符替換位置
文章來源地址http://www.zghlxwxcb.cn/news/detail-447002.html
到了這里,關(guān)于文本三劍客之~~~sed命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!