sed命令

原文地址: http://www.reibang.com/p/89163e927a2c

0. 目錄

1.簡介
2.子命令
????2.1 p--輸出
????2.2 i--插入行
????2.3 a --追加行
????2.4 d刪除行
????2.5 c替換行
????2.6 s替換指定文本

  1. 子命令組合

1. 簡介

在命令行對(duì)文本進(jìn)行操作, 如替換某文字, 插入文字, 刪除文字等

語法格式

sed [options] commands [inputfile...]

commands會(huì)包含一些子命令醉鳖,如p代表打印ia代表插入和追加,d代表刪除行c代表替換行s代表替換單詞

option包含的一些選項(xiàng)及其作用如下

選項(xiàng)名 作用
-n 取消默認(rèn)輸出
-e 多點(diǎn)編輯拓轻,可以執(zhí)行多個(gè)子命令
-f 從腳本文件中讀取命令(sed操作可以事先寫入腳本,然后通過-f讀取并執(zhí)行)
-i 直接編輯原文件
-l 指定行的長度
-r 在腳本中使用擴(kuò)展表達(dá)式

測(cè)試文本
root@wzj-dev:/opt# cat test1.txt

letitia
mail
uuencode
1003605091
01566

sed命令處理時(shí)只會(huì)改變緩沖區(qū)中文本的副本台妆,如果想要直接編輯原文件,可以使用-i選項(xiàng)或者將結(jié)果重定向到新的文件中胖翰。

以下實(shí)驗(yàn)均為緩沖區(qū)操作接剩,未改變?cè)次募?/p>

2. 子命令

2.1 p--輸出

2.1.1 打印1-3行

root@wzj-dev:/opt# sed '1,3 p' test1.txt
letitia
letitia
mail
mail
uuencode
uuencode
1003605091
01566

因?yàn)槲醇?code>-n選項(xiàng),所以除了打印第1-3行外, 還有個(gè)默認(rèn)打印, 導(dǎo)致第1-3行打印兩遍

root@wzj-dev:/opt# sed -n '1,3 p' test1.txt 
letitia
mail
uuencode

2.1.2 正則 --打印ma開頭的那一行到最后一行

root@wzj-dev:/opt# sed -n '/^ma/,$ p' test1.txt
mail
uuencode
1003605091
01566

2.1.3 設(shè)置步長--- 第一行開始萨咳,行號(hào)遞增2輸出

root@wzj-dev:/opt# sed -n '1~2 p' test1.txt
letitia
uuencode
01566

2.2 i--插入行

在第二行前插入一行insert111字符串

#-e選項(xiàng)表示多個(gè)子命令懊缺,本例執(zhí)行i子命令之后執(zhí)行了p子命令
root@wzj-dev:/opt# sed -n -e '2 i insert111' -e '1,4 p' test1.txt 
letitia
insert111
mail
uuencode
1003605091

2.3 a --追加行

在第二行之后追加一行append111字符串

root@wzj-dev:/opt# sed -n -e '2 a append111' -e '1,4 p' test1.txt
letitia
mail
append111
uuencode
1003605091

2.4 d刪除行

刪除第二行

root@wzj-dev:/opt# sed -n -e '2 d' -e '1,$ p' test1.txt
letitia
uuencode
1003605091
01566

2.5 c替換行

將第二行的mail替換為newmail

root@wzj-dev:/opt# sed -n -e '2 c newmail' -e '1,$ p' test1.txt
letitia
newmail
uuencode
1003605091
01566

2.6 s替換指定文本

2.6.1 語法格式

sed '位置參數(shù) s/pattern/replaced/[flag]'

位置參數(shù): 與前面一樣, 可以為'1,$',支持正則,也可以不指定
s: 子命令,代表替換指定文本
pattern: 要替換的文本,支持正則表達(dá)式
replaced: 用來替換的一般字符串
flag是替換標(biāo)志培他,用來影響匹配替換的規(guī)則:
flag 用法
g 全局匹配鹃两,會(huì)替換文本行中所有匹配的字符串
十進(jìn)制n 替換文本行中第n個(gè)匹配的字符串
p 替換第一個(gè)匹配的字符串,并且將緩沖區(qū)輸出到標(biāo)準(zhǔn)輸出
w 替換第一個(gè)匹配的字符串舀凛,并且將改動(dòng)的行輸出到磁盤文件中
缺省 替換第一個(gè)匹配的字符串

2.6.2 實(shí)驗(yàn)

  1. 將有十個(gè)數(shù)字的那一行替換為miss letitia
#{}要轉(zhuǎn)義
root@wzj-dev:/opt# sed -n -e 's/[0-9]\{10\}/miss letitia/g' -e '1,$ p' test1.txt
letitia
mail
uuencode
miss letitia
01566
  1. 從第一行開始,到以字符ma開頭的那一行, 里面的l全轉(zhuǎn)為大寫L
sed -n -e '1,/^ma/ s/l/L/g' -e '1,$ p' test1.txt
Letitia
maiL
uuencode
1003605091
01566

3. 子命令組合

對(duì)第1-3行做如下操作

  1. l全轉(zhuǎn)為大寫L
  2. e全轉(zhuǎn)為大寫E
  3. 在第二行前插入一行tyrone字符串
  4. 打印出來 ( 原來的三行加上插入的一行 )
root@wzj-dev:/opt# sed -n '1,3{
            s/l/L/g
            s/e/E/g
            2 i tyrone
            p
            }' test1.txt
LEtitia
tyrone
maiL
uuEncodE
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末俊扳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子猛遍,更是在濱河造成了極大的恐慌馋记,老刑警劉巖号坡,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異梯醒,居然都是意外死亡宽堆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門冤馏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來日麸,“玉大人,你說我怎么就攤上這事逮光。” “怎么了墩划?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵涕刚,是天一觀的道長。 經(jīng)常有香客問我乙帮,道長杜漠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任察净,我火速辦了婚禮驾茴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘氢卡。我一直安慰自己锈至,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布译秦。 她就那樣靜靜地躺著峡捡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪筑悴。 梳的紋絲不亂的頭發(fā)上们拙,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天,我揣著相機(jī)與錄音阁吝,去河邊找鬼砚婆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛突勇,可吹牛的內(nèi)容都是我干的装盯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼与境,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼验夯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起摔刁,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤挥转,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绑谣,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡党窜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了借宵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幌衣。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖壤玫,靈堂內(nèi)的尸體忽然破棺而出豁护,到底是詐尸還是另有隱情,我是刑警寧澤欲间,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布楚里,位于F島的核電站,受9級(jí)特大地震影響猎贴,放射性物質(zhì)發(fā)生泄漏班缎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一她渴、第九天 我趴在偏房一處隱蔽的房頂上張望达址。 院中可真熱鬧,春花似錦趁耗、人聲如沸沉唠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽右冻。三九已至,卻和暖如春著拭,著一層夾襖步出監(jiān)牢的瞬間纱扭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來泰國打工儡遮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乳蛾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓鄙币,卻偏偏與公主長得像肃叶,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子十嘿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354