Linux四劍客之sed

sed概念說明:字符流過濾編輯和文字符流轉(zhuǎn)換工具

文本處理方式:增、刪示括、改铺浇、查。


1垛膝、標(biāo)準(zhǔn)語法格式

# Linux四劍客之find

2鳍侣、常用選項

選項 釋義
-n 取消默認(rèn)輸出信息
-e 多點編輯
-f 從指定的文件中讀取編輯腳本
-r 支持使用擴(kuò)展正則表達(dá)式
-i.bak 先備份尾xxx.bak 然后修改原文件

3丁稀、sed常用指令

指令 釋義
p 打印模式空間內(nèi)容
d 刪除文件信息指令
a 文件追加信息指令(行后)
i 文件追加信息指令(行前)
c 把的匹配到的行的內(nèi)容替換掉
s 查找替換,支持使用其他的分隔符倚聚;s@查找的內(nèi)容@替換為的內(nèi)容@ 或 s# # #都可以
w 將顯示的內(nèi)容輸出到指定的文件中
r 將指定的文件插入到匹配到的行的后面
= 為模式空間中的行打印行號
! 线衫! 取反條件

4、練習(xí)

(a)惑折、指令p的用法舉例

顯示/etc/fstab下與UUID有關(guān)的行授账。

sed -n '/UUID/p' /etc/fstab

(b)、指令d的用法舉例

刪除/etc/fstab下與UUID有關(guān)的行惨驶。

sed '/UUDI/d' /etc/fstab

刪除/etc/fstab/文件下的空行白热。

sed '/^$/d' /etc/fstab

(c)、指令a的用法舉例

將/etc/fstab文件中敞咧,在UUID開頭的行的后一行棘捣,添加welcome的行。

sed '^UUID/a\welcome' /etc/fstab

(d)休建、指令i的用法舉例

將/etc/fstab文件中UUID開頭的行乍恐,前一行添加welcome的行。

sed '/^UUID/i\welcome' /etc/fstab

(e)测砂、指令c的用法舉例

將/etc/fstab文件中以UUID開頭的行替換為welcome茵烈。

sed '/^UUID/c\welcome' /etc/fstab 

將/etc/fstab文件中第9行的內(nèi)容替換為welcome。

sed '9c welcome' /etc/fstab

(f)砌些、指令s的用法舉例

此指令經(jīng)常搭配使用的三個指令

    >1)g 實現(xiàn)全局替換呜投。
    >2)p 顯示替換成功的行。  
    >3)w/path/filename 將替換成功的內(nèi)容保存至指定的文件中存璃;

將/etc/fstab文件中大寫的UUID仑荐,替換為小寫的uuid,其他內(nèi)容保持不變纵东。

sed 's/UUID/uuid/g' /etc/fstab

將/etc/fstab文件中首行開頭的UUID替換為UUIDER粘招,其他內(nèi)容保持不變。

sed -rn 's@^(UUID)@\1ER@p' /etc/fstab 

(g) 指令w用法舉例

將/etc/fstab中有關(guān)UUID的行寫入到/tmp/UUID 的文件中偎球。

[root@backup ~]# sed -n '/UUID/w/tmp/UUID' /etc/fstab 
[root@backup ~]# cat /tmp/UUID 
#UUID
UUID=f640a15d-5888-4be9-be3d-d3474bdc2ba3 /                       xfs     defaults        0 0
UUID=a858b3f1-5c99-4776-a591-af00d2dd9346 /boot                   xfs     defaults        0 0
UUID=87ef599b-45f0-46a8-ab5c-38abb4b5e171 swap                    swap    defaults        0 0
[root@backup ~]# 

使用ip addr 命令查找IP地址洒扎,并使用sed 命令找出IP后寫入到/tmp/UUID文件中。

[root@backup /temproary/test]# ip add | sed -rn 's@^.*inet (.*)/24 .*@\1@w/tmp/UUID' 
[root@backup /temproary/test]# cat /tmp/UUID 
10.0.0.41
172.16.1.41
[root@backup /temproary/test]# 

(h)指令r的用法

將/etc/motd文件中的內(nèi)容插入到/etc/fstab文件第一行之后

[root@backup /data]# sed  '1r/etc/motd' /etc/fstab

.--,       .--,
  ( (  \.---./  ) )
   '.__/o   o\__.'
      {=  ^  =}
       >  -  <
      /       \
     //       \\
    //|   .   |\\
    "'\       /'"_.-~^`'-.
       \  _  /--'         `
     ___)( )(___
    (((__) (__)))    
    

高山仰止,景行行止.雖不能至,心向往之衰絮。
#UUID
# /etc/fstab
# Created by anaconda on Sat May 11 23:52:21 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=f640a15d-5888-4be9-be3d-d3474bdc2ba3 /                       xfs     defaults        0 0
UUID=a858b3f1-5c99-4776-a591-af00d2dd9346 /boot                   xfs     defaults        0 0
UUID=87ef599b-45f0-46a8-ab5c-38abb4b5e171 swap                    swap    defaults        0 0
[root@backup /data]# 

5袍冷、sed 中后項引用用法
[root@localhost dir]# seq -s "" 9 >file01
[root@localhost dir]#  cat file01
123456789
[root@localhost dir]# sed -r 's@(..)(..).*@\2@g' file01  
34
[root@localhost dir]# sed -r 's@(..)(..).*@\1@g' file01
12
[root@localhost dir]# sed -r 's@[1-9]{2}(..).*@\1@g' file01 
34

[root@localhost dir]# sed -r 's@[1-9]{2}(..)(..).*@\1@g' file01 
34
[root@localhost dir]# sed -r 's@[1-9]{2}(..)(..).*@\2@g' file01 
56

6、sed 高級指令

高級編輯命令:
            h:把模式空間中的內(nèi)容覆蓋至保持空間中猫牡;
            H :把模式空間中內(nèi)容追加至保持空間中胡诗;
            g :從保持空間取出數(shù)據(jù)覆蓋至模式空間
            G:從保持空間取出內(nèi)容追加至模式空間
            x :把模式空間中的內(nèi)容與保持空間中的內(nèi)容進(jìn)行互換;
            n :讀取匹配到的行的下一行至模式空間;
            N:追加匹配到的行的下一行至模式空間乃戈;
            d :刪除模式空間中的行
            D:刪除多行模式空間中的所有行

7褂痰、高級指令使用舉例

    Sed –n ‘n;p’ file :顯示偶數(shù)行
    Sed ‘1!G;h;$!d’ file :逆向顯示文件內(nèi)容
    Sed ‘$!N;$!D’ file :取出文件后兩行
    Sed ‘$!d’ file :取出文件最后一行
    Sed ‘G’ file  :每行之間追加一空行
    Sed  ‘/^$/d;G’ file :將多個空行合并成一個空行
    Sed  ‘n;d’ file 顯示奇數(shù)行

8、在sed 中使用變量

sed -n ''${I}'p' images
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載症虑,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者缩歪。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市谍憔,隨后出現(xiàn)的幾起案子匪蝙,更是在濱河造成了極大的恐慌,老刑警劉巖习贫,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逛球,死亡現(xiàn)場離奇詭異,居然都是意外死亡苫昌,警方通過查閱死者的電腦和手機(jī)颤绕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來祟身,“玉大人奥务,你說我怎么就攤上這事⊥嗔颍” “怎么了氯葬?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長婉陷。 經(jīng)常有香客問我帚称,道長,這世上最難降的妖魔是什么秽澳? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任闯睹,我火速辦了婚禮,結(jié)果婚禮上担神,老公的妹妹穿的比我還像新娘瞻坝。我一直安慰自己,他們只是感情好杏瞻,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著衙荐,像睡著了一般捞挥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上忧吟,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天砌函,我揣著相機(jī)與錄音,去河邊找鬼。 笑死讹俊,一個胖子當(dāng)著我的面吹牛垦沉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播仍劈,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼厕倍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了贩疙?” 一聲冷哼從身側(cè)響起讹弯,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎这溅,沒想到半個月后组民,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡悲靴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年臭胜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片癞尚。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡耸三,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出否纬,到底是詐尸還是另有隱情吕晌,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布临燃,位于F島的核電站睛驳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏膜廊。R本人自食惡果不足惜乏沸,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望爪瓜。 院中可真熱鬧蹬跃,春花似錦、人聲如沸铆铆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽薄货。三九已至翁都,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谅猾,已是汗流浹背柄慰。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工鳍悠, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坐搔。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓藏研,卻偏偏與公主長得像,于是被迫代替她去往敵國和親概行。 傳聞我的和親對象是個殘疾皇子蠢挡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容