我們知道,vim 採用的是互動式文字編輯模式,你可以用鍵盤命令來互動性地插入、刪除或替換資料中的文字。但 sed 命令卻不同,它採用的是流編輯模式,最明顯的特點是,在 sed 處理資料之前,需要預先提供一組規則,sed 會按照此規則來編輯資料
大致規則如下:
1、每次僅讀取一行內容
2、根據提供的規則命令匹配並修改資料。注意,sed 預設不會直接修改原始檔資料,而是會將資料複製到模式空間中,修改也僅限於模式空間中的資料
3、將執行結果輸出,當一行資料匹配完成後,它會繼續讀取下一行資料,並重複這個過程,直到將檔案中所有資料處理完畢
選項作用
- n取消預設輸出
- i直接修改檔案內容,而不是輸出到終端
- e允許多項
- r支援擴充套件正則
sed 特有子命令
選項作用s替換
g全域性p列印
d刪除a追加,多少行後
i插入,多少行後c取代
!取反示例:1、把網絡卡資訊中ip取出
[root@yu zy]
# ip a s ens33
2: ens33:
mtu 1500 qdisc pfifo_fast state up group default qlen 1000
link/ether 00:0c:29:0b:67:f6 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::ae63:3bd2:b1a7:f2aa/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@yu zy]
# ip a s ens33 | sed -rn '3s#^.*inet (.*)/24 .*$#\1#gp'
10.0.0.200
2、刪除指定行資訊
[root@yu zy]
# cat 123.txt
type=ethernet
proxy_method=none
browser_only=no
2222222
bootproto=none
[root@yu zy]
# sed '2d' 123.txt
type=ethernet
browser_only=no
2222222
bootproto=none
3、追加和插入
[root@yu zy]
# cat 123.txt
type=ethernet
proxy_method=none
browser_only=no
2222222
bootproto=none
[root@yu zy]
# sed '2a 2222' 123.txt
type=ethernet
proxy_method=none
2222
browser_only=no
2222222
bootproto=none
[root@yu zy]
# sed '2i 2222' 123.txt
type=ethernet
2222
proxy_method=none
browser_only=no
2222222
bootproto=none
[root@yu zy]
# sed '2c 123123123' 123.txt
type=ethernet
123123123
browser_only=no
2222222
bootproto=none
文字三劍客 sed
sed是linux中支援正規表示式的流編輯器 作用 修改和替換文字 sed擁有兩個兩個空間,分別是pattern space和hold space pattern space是處理資料的地方 注意 每處理一行資料後,模式空間就會清空 hold space是臨時存放資料的地方 模式空間 pattern...
2,linux 三劍客之老二 grep
linux grep 命令用於查詢檔案裡符合條件的字串。e 解釋pattern作為擴充套件正規表示式,也就相當於使用egrep。或操作 i 搜尋時候忽略大小寫 v 反轉匹配,選擇沒有被匹配到的內容。c 統計行數 l 列出檔案內容不符合指定的範本樣式的檔名稱 l 列出檔案內容符合指定的範本樣式的檔名稱...
Linux三劍客sed基礎演示
一 sed 文字處理工具原理及使用 sed是一種非互動式的流編輯器,可動態編輯檔案 流編輯器則會在編輯器處理資料之前基於預先提供的一組 規則來編輯資料流 sed本身是乙個管道命令,可以分析 standard input 的,主要是用來分析關鍵字的使用 統計等,此外還可 以將資料進行替換 刪除 選中 ...