sed命令的新認知

2022-06-12 14:45:12 字數 2863 閱讀 4388

學習任何語法都要先學習格式,對格式理解才能更好的利用語法*****

1)查詢過濾檔案內容

2)替換內容 直接替換

3)如果內容輸出到螢幕 臨時替換 螢幕上顯示的內容替換 但是不影響原始檔

4)如果內容不顯示到螢幕 則替換原始檔

5)增刪改查

-r 支援擴充套件正則

-i 替換檔案中的內容

-n 取消預設輸出

學習任何語法都要先學習格式,對格式理解才能更好的利用語法*****

語法格式:

sed '動作' 檔案

sed '模式 動作' 檔案

sed '過濾內容 動作' 檔案

sed '要找的內容 幹啥' 檔案

01.sed查詢過濾檔案內容

精確匹配行

語法:sed 'np' file # 顯示檔案中的第n行 n為數字

-n 取消預設輸出

02.模糊匹配 在sed中n就有p、np連用*****

語法:sed -n '/過濾的內容/p'

// #模式 需要過濾的內容查詢的內容

p #print 列印輸出到螢幕

逗號表示範圍 字串之間的範圍

sed -n '//,//p' file

比如我們取日誌指點的時間內的資訊

1月25號早上8點30到9點的資訊

[[email protected]:50:05~ ]#sed -n '/jan 25 08:30:01/,/jan 25 09:00:01/p' /var/log/messages

jan 25 08:30:01 wish-10 systemd: started session 1070 of user root.

jan 25 08:30:01 wish-10 systemd: starting session 1070 of user root.

jan 25 08:35:01 wish-10 systemd: started session 1071 of user root.

jan 25 08:35:01 wish-10 systemd: starting session 1071 of user root.

jan 25 08:40:01 wish-10 systemd: started session 1072 of user root.

jan 25 08:40:01 wish-10 systemd: starting session 1072 of user root.

jan 25 08:45:01 wish-10 systemd: started session 1073 of user root.

jan 25 08:45:01 wish-10 systemd: starting session 1073 of user root.

jan 25 08:50:01 wish-10 systemd: started session 1074 of user root.

jan 25 08:50:01 wish-10 systemd: starting session 1074 of user root.

jan 25 08:55:01 wish-10 systemd: started session 1075 of user root.

jan 25 08:55:01 wish-10 systemd: starting session 1075 of user root.

jan 25 09:00:01 wish-10 systemd: started session 1076 of user root.

03.sed之增加內容sed 'na 內容' 1.txt #n就代表第幾行

sed '2i 內容' 1.txt

sed '2c 內容' 1.txt

這種修改都是臨時修改 在螢幕上修改了 但是不影響原始檔、加上引數-i才能真正被修改到檔案內容裡面

04.替換內容、替換字串、替換單詞

格式:sed 's#找誰#替換成誰#g' file # 臨時替換/把替換的內容輸出到螢幕上

sed -i 's#找誰#替換成誰#g' file # 永久替換

利用sed把1,10行前面加上注釋

sed -i '1,10s/^/#/g' passwd

05.sed之刪除

d 刪除動作

sed -i 修改檔案中的內容,不加-i 只在螢幕上顯示動作後的內容

刪除1到10行

sed -i '1,10d' file

刪除7到最後一行

sed -i '7,$' file

刪除和wish有關的行

sed -i '/wish/d' file

06.sed後項引用前向

想要輸出的內容經過正則匹配使用()保護起來

輸出的時候\1就是顯示第乙個()中的內容 \2顯示第二個()的內容

sed -r 's#()#\1#g' file

利用後項引用取出ip位址

[[email protected]:12:48~ ]#ifconfig eth0|sed -rn '2s/^.*inet (.*) netm.*$/\1/gp'

10.0.0.200

利用後項引用取出ip位址和netmask

[[email protected]:15:10~ ]#ifconfig eth0|sed -nr '2s/^.*inet (.*) netmask (.*) bro.*$/\1\2/gp'

10.0.0.200 255.255.255.0

sed 常用的命令

n 讀取一行,執行n,把當前行列印到標準輸出,再讀取一行,覆蓋當前行,然後對模式空間執行一組模式 行為。n 讀取一行,執行n,再讀取一行,現在模式空間有兩行內容,執行一組模式 行為。如下 root localhost sed n p num.txt num1 num2 num2 num3 num4 ...

sed命令的用法

sed命令的用法 sed 的基本命令 1 替換 s命令 1.1 基本用法 如 sed s day night new 該例子將檔案 old 中的每一行第一次出現的 day 替換成 night,將結果輸出到檔案 new s 替換 命令 分割符 delimiter day 搜尋字串 night 替換字串...

sed命令的使用

1 sed stream editor 流編輯器的縮寫 2 sed命令用來處理檔案內容的行資料。與awk相對應 awk是處理列資料 3 語法上與vi中的語法很像 4 sed 預設支援basic正則,所以,有的字元需要轉義,比如 如果想不轉義,需要新增 r 引數 sed r 5 命令真正反映在檔案中,...