學習任何語法都要先學習格式,對格式理解才能更好的利用語法*****
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 命令真正反映在檔案中,...