shell編程----sed命令

sed命令介紹

Linux sed命令是利用腳本來處理文本文件,sed可以依照腳本的指令來處理、編輯文本文件,sed主要來自動編輯一個或者多個文件、簡化對文件的反覆操作、編寫轉換程序等。

sed命令

語法:sed [option] '{command}[flags]' [filename]

命令選項

-e script 將腳本中指定的命令添加到處理輸入時執行的命令中    多條件、一行中要有多個操作

-f script   將文件中指定的命令添加到處理出入時執行的命令中

-n            抑制自動輸出

-i             編輯文件內容

-i.bak       修改時同時創建.bak備份文件

-r             使用擴展的正則表達式

!               取反(跟在模式條件後與shell有所區別)

sed常用內部命令

a    在匹配後面添加

i     在匹配前面添加

p     打印

d      刪除

s      查找替換

c      更改

y       轉換   N D P

flags選擇

數字    顯示新文本替換的模式

g:        表示用新文本替換現有文本的全部實例

p:        表示打印原始的內容

w filename  將替換的結果寫入文件

例子展示,數據源

1> sed 's/dog/cat/' cat.txt   將每行的第一個dog替換成cat

2> sed 's/dog/cat/2' cat.txt  將每行的第二個dog替換成cat

3> sed 's/dog/cat/g' cat.txt  將每行的所有dog替換成cat

4> sed '3s/dog/cat/p' cat.txt  將第三行打印出來

5> sed '3s/dog/cat/w mfile' cat.txt  將第三行修改過的內容保存到mfile文件中

6> sed -n '3s/dog/cat/p' cat.txt  抑制內存的輸出,只打印出想要的

7> sed -e 's/brown/green/;s/dog/cat/' cat.txt  同時執行多條命令

 注意:以上替換文本的時候,源文件中的文件並沒有發生實質性的替換

8> sed -i 's/dog/cat/g' cat.txt   加上-i命令選項,源文件中的文本才發生了真正的替換

9> sed -i.bak 's/dog/cat/g' cat.txt  將修改的文件備份到cat.txt.bak中,而cat.txt中沒有發生變化

10> sed -n '/^(root)(.*)(bash)$/p' /etc/passwd  將/etc/passwd文件中以root開頭以bash結尾的字符串打印出來

sed命令小技巧

$= 統計文本有多少行

1> sed -n '$=' cat.txt

2> sed '=' cat.txt    打印cat.txt內容的時候加上行號

學習視頻:https://www.bilibili.com/video/BV1vE41127wm?p=26

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章