日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【拔刀吧少年】之sed编辑器

發(fā)布時(shí)間:2024/9/3 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【拔刀吧少年】之sed编辑器 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

sed

  • 一、sed編輯器
  • 二、sed編輯器工作流程
    • 1、讀取
    • 2、執(zhí)行
    • 3、顯示
  • 三、命令格式
  • 四、常用選項(xiàng)
  • 五、常用操作
  • 六、使用地址
  • 七、刪除行
  • 八、替換
    • 1、格式
    • 2、4種替換標(biāo)記
  • 九、插入

一、sed編輯器

sed是一種流編輯器,流編輯器會(huì)在編輯器處理數(shù)據(jù)之前基于預(yù)先提供的一組規(guī)則來(lái)編輯數(shù)據(jù)流。
sed編輯器可以根據(jù)命令來(lái)處理數(shù)據(jù)流中的數(shù)據(jù),這些命令要么從命令行中輸入,要么存儲(chǔ)在一個(gè)命令文本文件中。

sed是一個(gè)強(qiáng)大而簡(jiǎn)單的文本解析轉(zhuǎn)換工具,可以讀取文本,并根據(jù)指定的條件對(duì)文本內(nèi)容進(jìn)行編輯(刪除、替換、添加、移動(dòng)等),最后輸出所有行或者僅輸出處理的某些行。sed 也可以在無(wú)交互的情況下實(shí)現(xiàn)相當(dāng)復(fù)雜的文本處理操作,被廣泛應(yīng)用于 Shell 腳本中,用以完成各種自動(dòng)化處理任務(wù)。
sed依賴于正則表達(dá)式

二、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)容都被處理完成之前,上述過(guò)程將重復(fù)執(zhí)行,直至所有內(nèi)容被處理完。
注:
在所有的文件內(nèi)容都被處理完成之前,上述過(guò)程將重復(fù)執(zhí)行,直至所有內(nèi)容被處理完。
默認(rèn)情況下所有的sed命令都是在模式空間內(nèi)執(zhí)行的,因此輸入的文件并不會(huì)發(fā)生任何變化,除非是用重定向存儲(chǔ)輸出。

三、命令格式

四、常用選項(xiàng)

sed [選項(xiàng)] ‘操作’ 參數(shù)
sed [選項(xiàng)] -f scriptfile 參數(shù)

選項(xiàng) 說(shuō)明
-e或- -expression= 表示用指定命令來(lái)處理輸入的文本文件,只有一個(gè)操作命令時(shí)可省略,一 般在執(zhí)行多個(gè)操作命令使用
f或- -file= 表示用指定的腳本文件來(lái)處理輸入的文本文件
h或- -help 顯示幫助
-n、- -quiet或silent 禁止sed編輯器輸出,但可以與p命令一起使用完成輸出
sed -e 'n{
操作1
操作2

}’ 文件1 文件2 …
-i 直接修改目標(biāo)文本文件
打印行號(hào)和內(nèi)容,行號(hào)在上,或者使用sed -n -e ‘=’ -e ‘p’ testsed1效果也一樣



打印行號(hào)和內(nèi)容,行號(hào)在上,或者使用sed -n -e ‘=’ -e ‘p’ testsed1效果也一樣


五、常用操作

操作 說(shuō)明
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 (小寫(xiě)L) 打印數(shù)據(jù)流中的文本和不可打印的ASCII字符(比如結(jié)束符$、制表符\t)

六、使用地址

sed編輯器有2種尋址方式:
以數(shù)字形式表示行區(qū)間
用文本模式來(lái)過(guò)濾出行
以數(shù)字形式表示行區(qū)間

打印文本的奇數(shù)和偶數(shù)行


打印/etc/passwd文件內(nèi)指定的行


使用 -r 表示支持?jǐn)U展正則表達(dá)式

七、刪除行


刪除以指定字符結(jié)尾的行及取反

刪除一個(gè)區(qū)間的行

匹配到開(kāi)頭字符,無(wú)結(jié)尾的字符

八、替換

1、格式

2、4種替換標(biāo)記

數(shù)字:表明新字符串將替換第幾處匹配的地方
g:表明新字符將會(huì)替換所有匹配的地方
p:打印與替換命令匹配的行,與-n一起使用
w 文件:將替換的結(jié)果寫(xiě)到文件中
sed -i 's9\945\9\99\98\939g' test.txt #將94599替換為9893(紅色為分隔符)


-f執(zhí)行腳本文件

w

九、插入

將輸出的字符進(jìn)行互換位置

總結(jié)

以上是生活随笔為你收集整理的【拔刀吧少年】之sed编辑器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。