Sed命令

sed: stream editor (行編輯器)

默認(rèn)不編輯原文件术徊,僅對模式處理

sed 'Addresscommand' file ....
指定Address
1.開頭,結(jié)束 (1,100)
$:最后一行
$-1:倒數(shù)第二行
2.正則表達(dá)指定模式 (/^root/)
3.模式1旧烧,模式2 (/pattern1/, /pattern2/) 從模式1開始到模式2中間所有的行
4.Line number(精確行 )
5.Startline, +N 從startline開始,向后N行
命令:

d 刪除
p顯示符合條件的行
a \在匹配的行后面加自己顯示的內(nèi)容
i \在匹配的行前面加自己顯示的內(nèi)容

如:

$ cat 11_1.sh 
#!/bin/bash
#
file=/etc/
if [ ! -e $file ]; then
  echo "no $file"
  exit 1
fi

if [ -f $file ]; then 
  echo "$file is a common file."
elif [ -d $file ];then 
  echo "$file is a dir."
else
  echo "unknown file."
fi


$ sed '1,2d' 11_1.sh  #d 刪除
file=/etc/ 
if [ ! -e $file ]; then
  echo "no $file"
  exit 1
fi

if [ -f $file ]; then 
  echo "$file is a common file."
elif [ -d $file ];then 
  echo "$file is a dir."
else
  echo "unknown file."
fi

包含if就全部刪了 / / 斜線:模式匹配

$ sed '/if/d' 11_1.sh 
#!/bin/bash
#
file=/etc/
  echo "no $file"
  exit 1
fi

  echo "$file is a common file."
  echo "$file is a dir."
else
  echo "unknown file."
fi

相對行刪除豫缨,刪除第1行開始向后2行(前三行)

$ sed '1,+2d' 11_1.sh 
if [ ! -e $file ]; then
  echo "no $file"
  exit 1
fi

if [ -f $file ]; then 
  echo "$file is a common file."
elif [ -d $file ];then 
  echo "$file is a dir."
else
  echo "unknown file."
fi

只除第一行 sed 1d 11_1.sh

p顯示 顯示以/開頭的看靠,匹配自身需要在/前面加一個反斜線\

$ sed '/^\//p' /etc/fstab 
/dev/vda1            /                    ext3       noatime,acl,user_xattr 1 1
/dev/vda1            /                    ext3       noatime,acl,user_xattr 1 1
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
/dev/vdb1 /public ext3 defaults 0 0
/dev/vdb1 /public ext3 defaults 0 0
/dev/vdc /home ext3 defaults 0 0
/dev/vdc /home ext3 defaults 0 0
#/dev/vdf /trainee ext3 defaults 0 0
/mnt/10GiB.swap swap swap defaults 0 0
/mnt/10GiB.swap swap swap defaults 0 0

可以看到符合命令的顯示了2次
可以使用-n 不再顯示模式空間內(nèi)容,只顯示符合條件的行

$ sed -n '/^\//p' /etc/fstab 
/dev/vda1            /                    ext3       noatime,acl,user_xattr 1 1
/dev/vdb1 /public ext3 defaults 0 0
/dev/vdc /home ext3 defaults 0 0
/mnt/10GiB.swap swap swap defaults 0 0

a \在匹配的行后面加自己顯示的內(nèi)容

$ sed '/^\//a \ hello world' /etc/fstab 
/dev/vda1            /                    ext3       noatime,acl,user_xattr 1 1
 hello world
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
/dev/vdb1 /public ext3 defaults 0 0
 hello world
/dev/vdc /home ext3 defaults 0 0
 hello world
#/dev/vdf /trainee ext3 defaults 0 0
/mnt/10GiB.swap swap swap defaults 0 0
 hello world


$ sed '/^\//a \hello world\nhello' /etc/fstab  #\n換行
/dev/vda1            /                    ext3       noatime,acl,user_xattr 1 1
hello world
hello
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
/dev/vdb1 /public ext3 defaults 0 0
hello world
hello
/dev/vdc /home ext3 defaults 0 0
hello world
hello
#/dev/vdf /trainee ext3 defaults 0 0
/mnt/10GiB.swap swap swap defaults 0 0
hello world
hello

i \在匹配的行前面加自己顯示的內(nèi)容

$ sed '/^\//i \hello world' /etc/fstab 
hello world
/dev/vda1            /                    ext3       noatime,acl,user_xattr 1 1
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0

友情閱讀推薦:

生信技能樹公益視頻合輯:學(xué)習(xí)順序是linux愕秫,r慨菱,軟件安裝,geo戴甩,小技巧符喝,ngs組學(xué)!

B站鏈接:https://m.bilibili.com/space/338686099

YouTube鏈接:https://m.youtube.com/channel/UC67sImqK7V8tSWHMG8azIVA/playlists

生信工程師入門最佳指南:https://mp.weixin.qq.com/s/vaX4ttaLIa19MefD86WfUA

學(xué)徒培養(yǎng):https://mp.weixin.qq.com/s/3jw3_PgZXYd7FomxEMxFmw

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末甜孤,一起剝皮案震驚了整個濱河市协饲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌缴川,老刑警劉巖茉稠,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異二跋,居然都是意外死亡战惊,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吞获,“玉大人况凉,你說我怎么就攤上這事「骺剑” “怎么了刁绒?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長烤黍。 經(jīng)常有香客問我知市,道長,這世上最難降的妖魔是什么速蕊? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任嫂丙,我火速辦了婚禮,結(jié)果婚禮上规哲,老公的妹妹穿的比我還像新娘跟啤。我一直安慰自己,他們只是感情好唉锌,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布隅肥。 她就那樣靜靜地躺著,像睡著了一般袄简。 火紅的嫁衣襯著肌膚如雪腥放。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天绿语,我揣著相機(jī)與錄音秃症,去河邊找鬼。 笑死汞舱,一個胖子當(dāng)著我的面吹牛伍纫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播昂芜,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼莹规,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了泌神?” 一聲冷哼從身側(cè)響起良漱,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎欢际,沒想到半個月后母市,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡损趋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年患久,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡蒋失,死狀恐怖返帕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情篙挽,我是刑警寧澤荆萤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站铣卡,受9級特大地震影響链韭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜煮落,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一敞峭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧州邢,春花似錦儡陨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嫌褪。三九已至呀枢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間笼痛,已是汗流浹背裙秋。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缨伊,地道東北人摘刑。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像刻坊,于是被迫代替她去往敵國和親枷恕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

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

  • 行前或行后插入 sed 'p;s/^.*$/--------/' file awk '{print $0;prin...
    不排版閱讀 515評論 0 0
  • Linux sed命令是利用script來處理文本文件谭胚。sed可依照script的指令徐块,來處理、編輯文本文件灾而。Se...
    姜淑均閱讀 720評論 1 2
  • sed是一種流編輯器胡控,它是文本處理中非常中的工具,能夠完美的配合正則表達(dá)式使用旁趟,功能不同凡響昼激。處理時,把當(dāng)前處理的...
    ChinaLeee閱讀 347評論 0 0
  • linux sed命令詳解 1. Sed簡介 sed 是一種在線編輯器,它一次處理一行內(nèi)容橙困。處理時敛劝,把當(dāng)前處理的行...
    很少更新了閱讀 2,158評論 0 6
  • Linux sed命令是利用script來處理文本文件。 sed可依照script的指令纷宇,來處理夸盟、編輯文本文件。 ...
    MiracleJQ閱讀 267評論 0 0