1. 程式人生 > >Linux基本命令之sed

Linux基本命令之sed

語法格式
sed [options] [sed-commands] [input-file]
選項 [sed命令] [輸入檔案]

說明
1、sed-commands既可以是單個sed命令,也可以是sed命令組合
2、input-file(輸入檔案)是可選項,sed還能夠從標準輸入,如:管道獲取輸入

命令流程
Linux基本命令之sed

sed模式空間:sed軟體內部的一個臨時快取,用於存放讀取到的內容。
Linux基本命令之sed

例子:
1、使用文字
Linux基本命令之sed
2、增刪改查

2.1增
a:追加文字到指定行後
i:插入文字到指定行前

2.1.1單行增加
Linux基本命令之sed
注:這是改變輸出,而文字內容不會有任何變化,要想改變內容要加-i引數
Linux基本命令之sed

2.1.2多行增加
Linux基本命令之sed
記住這裡一定要用單引號‘’


Linux基本命令之sed
Linux基本命令之sed
2.2刪
d:刪除指定的行
Linux基本命令之sed
案例:列印檔案內容不包含abc
Linux基本命令之sed

2.3改
2.3.1按行替換
c:用新行替換舊行
Linux基本命令之sed

2.3.2文字替換

  1. s:單獨使用將每一行中第一次匹配的字串進行替換
  2. g:每一行進行全部替換
  3. i:修改檔案內容
    Linux基本命令之sed
    說明:#是定界符,,定界符可以是任意符號。當替換內容包含定界符的時候,需轉義。建議使用#。

案例:指定修改配置檔案
Linux基本命令之sed

2.3.3變數替換
Linux基本命令之sedLinux基本命令之sed

2.3.4分組替換\( \)和\1的使用說明
Linux基本命令之sed
Linux基本命令之sed
Linux基本命令之sed

案例:系統開機啟動項優化
Linux基本命令之sed

2.3.5特殊符號&代表被替換的內容
Linux基本命令之sed

案例:批量重新命名檔案
Linux基本命令之sed
Linux基本命令之sed

2.4查
p:輸出指定內容,當預設會輸出2次(為什麼是2次,因為sed命令會預設讀取一行,輸出一行,然後遇到p引數,再讀取一行,輸出一行)匹配的結果,因此使用n取消預設輸出

2.4.1按行查詢
Linux基本命令之sed
2.4.2按字元船查詢
Linux基本命令之sed
2.4.3混合查詢
Linux基本命令之sed
Linux基本命令之sed
特殊情況,前兩行沒有匹配到g,就向後匹配,如果匹配到g就列印此行