shell脚本详解(十)——sed编辑器的使用方法
生活随笔
收集整理的這篇文章主要介紹了
shell脚本详解(十)——sed编辑器的使用方法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
shell腳本詳解(十)——sed編輯器的使用方法
- 一、sed編輯器
- 二、sed編輯器工作流程
- 1、讀取:
- 2、執(zhí)行:
- 3、顯示:
- 4、注:
- 三、命令格式
- 四、常用選項(xiàng)
- 五、常用操作
- 六、使用地址
- sed編輯器有2種尋址方式:
- 七、刪除行
- 八、替換
- 1、格式
- 2、4種替換標(biāo)記
- 九、插入
一、sed編輯器
- sed是一種流編輯器,流編輯器會(huì)在編輯器處理數(shù)據(jù)之前基于預(yù)先提供的一組規(guī)則來編輯數(shù)據(jù)流。
- sed編輯器可以根據(jù)命令來處理數(shù)據(jù)流中的數(shù)據(jù),這些命令要么從命令行中輸入,要么存儲(chǔ)在一個(gè)命令文本文件中。
二、sed編輯器工作流程
1、讀取:
- sed從輸入流 (文件、管道、標(biāo)準(zhǔn)輸入) 中讀取一行內(nèi)容并存儲(chǔ)到臨時(shí)的緩沖區(qū)中(又稱模式空間,pattern space)
2、執(zhí)行:
- 默認(rèn)情況下,所有的sed命令都在模式空間中順序地執(zhí)行,除非指定了行的地址,否則sed命令將會(huì)在所有的行上依次執(zhí)行。
3、顯示:
- 發(fā)送修改后的內(nèi)容到輸出流。在發(fā)送數(shù)據(jù)后,模式空間將會(huì)被清空。在所有的文件內(nèi)容都被處理完成之前,上述過程將重復(fù)執(zhí)行,直至所有內(nèi)容被處理完。
4、注:
- 在所有的文件內(nèi)容都被處理完成之前,上述過程將重復(fù)執(zhí)行,直至所有內(nèi)容被處理完。
- 默認(rèn)情況下所有的sed命令都是在模式空間內(nèi)執(zhí)行的,因此輸入的文件并不會(huì)發(fā)生任何變化,除非是用重定向存儲(chǔ)輸出。
三、命令格式
四、常用選項(xiàng)
| -e或- -expression= | 表示用指定命令來處理輸入的文本文件,只有一個(gè)操作命令時(shí)可省略,一 般在執(zhí)行多個(gè)操作命令使用 |
| f或- -file= | 表示用指定的腳本文件來處理輸入的文本文件 |
| h或- -help | 顯示幫助 |
| -n、- -quiet或silent | 禁止sed編輯器輸出,但可以與p命令一起使用完成輸出 |
| -i | 直接修改目標(biāo)文本文件 |
五、常用操作
| s | 替換,替換指定字符 |
| d | 刪除,刪除選定的行 |
| a | 增加,在當(dāng)前行下面增加一行指定內(nèi)容 |
| i | 插入,在選定行,上面插入一行指定內(nèi)容 |
| c | 替換,將選定行替換為指定內(nèi)容 |
| y | 字符轉(zhuǎn)換,轉(zhuǎn)換前后的字符長(zhǎng)度必須相同 |
| p | 打印,如果同時(shí)指定行,表示打印指定行;如果不指定行,則表示打印所有內(nèi)容;如果有非打印字符,則以ASCII碼輸出。其通常與“-n”選項(xiàng)一起使用 |
| = | 打印行號(hào) |
| l (小寫L) | 打印數(shù)據(jù)流中的文本和不可打印的ASCII字符(比如結(jié)束符$、制表符\t) |
六、使用地址
sed編輯器有2種尋址方式:
- 以數(shù)字形式表示行區(qū)間
- 用文本模式來過濾出行
七、刪除行
八、替換
1、格式
2、4種替換標(biāo)記
- 數(shù)字:表明新字符串將替換第幾處匹配的地方
- g:表明新字符將會(huì)替換所有匹配的地方
- p:打印與替換命令匹配的行,與-n一起使用
- w 文件:將替換的結(jié)果寫到文件中
九、插入
總結(jié)
以上是生活随笔為你收集整理的shell脚本详解(十)——sed编辑器的使用方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AMD Ryzen专用内存:选择正确内存
- 下一篇: shell脚本详解(十二)——Here