Linux基本命令之sed
阿新 • • 發佈:2018-12-02
語法格式
sed [options] [sed-commands] [input-file]
選項 [sed命令] [輸入檔案]
說明
1、sed-commands既可以是單個sed命令,也可以是sed命令組合
2、input-file(輸入檔案)是可選項,sed還能夠從標準輸入,如:管道獲取輸入
命令流程
sed模式空間:sed軟體內部的一個臨時快取,用於存放讀取到的內容。
例子:
1、使用文字
2、增刪改查
2.1增
a:追加文字到指定行後
i:插入文字到指定行前
2.1.1單行增加
注:這是改變輸出,而文字內容不會有任何變化,要想改變內容要加-i引數
2.1.2多行增加
記住這裡一定要用單引號‘’
2.2刪
d:刪除指定的行
案例:列印檔案內容不包含abc
2.3改
2.3.1按行替換
c:用新行替換舊行
2.3.2文字替換
- s:單獨使用將每一行中第一次匹配的字串進行替換
- g:每一行進行全部替換
- i:修改檔案內容
說明:#是定界符,,定界符可以是任意符號。當替換內容包含定界符的時候,需轉義。建議使用#。
案例:指定修改配置檔案
2.3.3變數替換
2.3.4分組替換\( \)和\1的使用說明
案例:系統開機啟動項優化
2.3.5特殊符號&代表被替換的內容
案例:批量重新命名檔案
2.4查
p:輸出指定內容,當預設會輸出2次(為什麼是2次,因為sed命令會預設讀取一行,輸出一行,然後遇到p引數,再讀取一行,輸出一行)匹配的結果,因此使用n取消預設輸出
2.4.1按行查詢
2.4.2按字元船查詢
2.4.3混合查詢
特殊情況,前兩行沒有匹配到g,就向後匹配,如果匹配到g就列印此行