Linux shell基礎(五)sed指令一、sed指令二、sed 比對搜尋用法三、sed删除特定行用法四、sed替換特定内容用法五、sed調換字元串次序用法
sed是一種強大的流式編輯器 (stream editor for filtering and transforming text),它能夠完美的使用正規表達式,逐行處理文本并把結果顯示到螢幕上。sed的強項是替換文本中的特定字元,而寫shell有個步驟就是從一段文本中截取一段字元進行處理,是以熟練掌握sed指令是寫shell腳本的基本技能。
用法:
sed [選項]... {腳本(如果沒有其他腳本)} [輸入檔案]
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
選項:
-p 查找
-d 删除
-s 替換
sed可以向grep一樣查找檔案文本中包含關鍵字的行并把改行顯示在螢幕上。
指令寫法:sed -n '/(比對的字元串)/'p 檔案名(簡記為-np)
1、搜尋passwd檔案中包含root關鍵字的行。
sed -n '/root/'p passwd
Linux shell基礎(五)sed指令一、sed指令二、sed 比對搜尋用法三、sed删除特定行用法四、sed替換特定内容用法五、sed調換字元串次序用法
2、搜尋ssh檔案中以#開頭的行
sed -n '/^#/'p ssh
Linux shell基礎(五)sed指令一、sed指令二、sed 比對搜尋用法三、sed删除特定行用法四、sed替換特定内容用法五、sed調換字元串次序用法
3、搜尋正則'o+t'類型的行
sed -nr ‘/o+t/’p passwd
Linux shell基礎(五)sed指令一、sed指令二、sed 比對搜尋用法三、sed删除特定行用法四、sed替換特定内容用法五、sed調換字元串次序用法
注意“+”号屬于擴充正則,需要跟-r選項才能用
4、搜尋正則‘兩次o’的行
sed -nr '/o{2}/'p passwd
Linux shell基礎(五)sed指令一、sed指令二、sed 比對搜尋用法三、sed删除特定行用法四、sed替換特定内容用法五、sed調換字元串次序用法
5、搜尋正則root或者bus的行‘root|bus’
sed -nr '/root|bus/'p passwd
Linux shell基礎(五)sed指令一、sed指令二、sed 比對搜尋用法三、sed删除特定行用法四、sed替換特定内容用法五、sed調換字元串次序用法
6、不區分大小寫搜尋關鍵字所在的行
sed -n '/nologin/'Ip passwd 注意是大寫字母I,不是管道符号|
Linux shell基礎(五)sed指令一、sed指令二、sed 比對搜尋用法三、sed删除特定行用法四、sed替換特定内容用法五、sed調換字元串次序用法
指令寫法:sed -n ‘行号或行号描述’p 檔案路徑 注意單引号''内不需要跟兩個//
1、顯示檔案第2行内容
sed -n '2'p passwd
Linux shell基礎(五)sed指令一、sed指令二、sed 比對搜尋用法三、sed删除特定行用法四、sed替換特定内容用法五、sed調換字元串次序用法
2、顯示檔案第6行至10行内容
sed -n '6,10'p passwd 注意中間是逗号,不是-
Linux shell基礎(五)sed指令一、sed指令二、sed 比對搜尋用法三、sed删除特定行用法四、sed替換特定内容用法五、sed調換字元串次序用法
3、全文顯示
sed -n '1,$'p passwd 注意不能寫成“sed -n '^,$'p passwd”
Linux shell基礎(五)sed指令一、sed指令二、sed 比對搜尋用法三、sed删除特定行用法四、sed替換特定内容用法五、sed調換字元串次序用法