正則表達(dá)式---sed

sed (stream editor 流編輯器)
基本語法:
sed [-n] program [file-list]
sed [-n] –f program-file [file-list]
sed 是一個(gè)批處理編輯器。可以對(duì)來自文件或者標(biāo)準(zhǔn)輸入的輸入流進(jìn)行交換。常被用于管道中的過濾器。sed工具從命令行所指定的文件或者標(biāo)準(zhǔn)輸入中獲取輸入流。除非明確指定輸出目標(biāo),否則將把結(jié)果輸出到標(biāo)準(zhǔn)輸出。

選項(xiàng)參數(shù)
-n (quiet, silent) 安靜模式。加上-n后,只有經(jīng)過sed特殊處理的那一行才會(huì)被列出來
-e (script, --expression=script) 直接在指令列模式上進(jìn)行sed動(dòng)作編輯
-f (script-file, --file=script-file) 直接將sed的動(dòng)作寫在一個(gè)文件內(nèi)

Sed 動(dòng)作
-i ([SUFFIX], --in-place[=SUFFIX]) 直接修改讀取的文件內(nèi)容,而不是由屏幕輸出
-r (regexp-extended) sed的動(dòng)作支持的是延伸型正則表示法的語法。(預(yù)設(shè)是基礎(chǔ)正則表示法語法)

動(dòng)作說明:[n1, [n2]]function
n1, n2: 不一定存在,表示選擇進(jìn)行動(dòng)作
a (append) 新增,a 的后面可以接字符串,而這些字符串會(huì)在新的一行出現(xiàn)(當(dāng)前行的系一行)
c (change,replace) 取代,c后面的接字符串,講匹配的行替換為c后接的字符串
d (delete) 刪除
i (Insert) 插入, i的后面接字符串,而這些字符串會(huì)在新的一行出現(xiàn)(當(dāng)前行的上一行)
p (print) 打印,將某個(gè)選擇的數(shù)據(jù)打印。通常p會(huì)與參數(shù)sed –n一起運(yùn)行
s (substitution) 取代,可以直接進(jìn)行取代的工作。通常的搭配是:s/old/new/g
w (write) 將匹配的內(nèi)容寫入另外一個(gè)文件中
h/H 將 pattern space 拷貝到 hold space
g/G 將 hold space拷貝到 pattern space

1)打印含有student的行

-n 和 p 一起使用表示只打印發(fā)生匹配的行

打印指定的行

打印從第6行開始到含有第一個(gè)含有stu結(jié)束的行

打印從第8行到最后行

2)插入某些內(nèi)容

以上是在含有Deve的行后加上(append) teste

以上是在含有Deve的行前加上(Insert) teste

以上為將漢以后deve的整行替換為teset

3)行內(nèi)的內(nèi)容替換

加上-i選項(xiàng)之后文件中的內(nèi)容被改變

4) 刪除匹配的行

以上分別是
A. 刪除指定的第二行到含有g(shù)ood的行,講剩余行打印出來
B. 刪除第2行到第6行
C. 刪除含有g(shù)ood的行

5) 將匹配的行寫入另一文件

6) 讀取文件中的命令

7) 交換兩個(gè)幾個(gè)單詞的位置

以上使用()來表示對(duì)應(yīng)的匹配項(xiàng), 最多匹配到9項(xiàng)。

8)&符號(hào)表示替換字符串中被找到的部分

9)s-替換 后面的字符可以被認(rèn)為是新的命令分隔符,代替”/”,但是分隔符一定是s后面的字符

10)逗號(hào)表示選定行的范圍

以上打印從含有You的行開始到含有Plan的行之間的行,無論P(yáng)lan出現(xiàn)在哪兒,之間的行都被打印,如果Plan沒出現(xiàn),中間的行都將被打印
以上是打印從第3行到含有Plan的行之間的行,如果Plan沒出現(xiàn),中間的行都將被打印


以上是打印從第3行到含有Plan的行之間的行,如果Plan沒出現(xiàn),中間的行都將被打印

以下部分將You到Plan的行中間含有的better替換為best,并將影響到的行打印出來

11)-e 多點(diǎn)編輯

以上都是將第1行到第6行刪掉,然后將剩余的good替換為better。 第二個(gè)示例中是再將Dev替換為def

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文承接之前寫的三十分鐘學(xué)會(huì)AWK一文,在學(xué)習(xí)完AWK之后,趁熱打鐵又學(xué)習(xí)了一下SED,不得不說這兩個(gè)工具真的堪稱...
    mylxsw閱讀 4,518評(píng)論 3 74
  • Sed工具工作原理及特性 1. sed是流編輯器,每一次讀取一行到內(nèi)存中,即稱之為模式空間(pattern spa...
    魏鎮(zhèn)坪閱讀 11,126評(píng)論 0 12
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,266評(píng)論 2 33
  • 這幾天又再次體會(huì)到“學(xué)習(xí)”帶給我的快樂。一些散落知識(shí)點(diǎn)在腦袋里融會(huì)貫通,串起來之后,感覺太美妙了。 直到最近我才發(fā)...
    申湘黔閱讀 215評(píng)論 0 1
  • 前天被@到一條關(guān)于故宮博物院院長來蘇講座且統(tǒng)共只有25席虛位以待的微博。 雖然自帶的搶票猜題BUG體質(zhì)已經(jīng)驗(yàn)證了無...
    清露未晞閱讀 521評(píng)論 2 2

友情鏈接更多精彩內(nèi)容