sed命令示例詳解

sed [OPTION]… {script-only-if-no-other-script} [input-file]…

sedstream editor流編輯器的簡稱,可以用來過濾和轉換文本,以下是一些常用示例。假設,我們有文本file.txt內容如下:
在這裏插入圖片描述

  1. 字符替換操作

在這裏插入圖片描述
s表示替換操作,默認情況下,sed只替換每行首次出現的匹配字串,所以在上面的示例中,第一行中的第二個和第三個unix沒有被替換。

2.替換某一行中第幾次出現的字串

使用/1,/2等標識,指定替換某一行中第幾次出現的匹配字串,比如,本示例中使用/2,表示替換每一行中第二次匹配的字串。

在這裏插入圖片描述

3.替換匹配字串
使用*/g*標識
在這裏插入圖片描述

4.替換每一行中第幾次開始出現到每一行結束的所有匹配字串
使用/1,/2等以及/g標識,本例中,我們指定替換每一行中從第三次匹配到行尾的所有匹配字串。
在這裏插入圖片描述

5.使用其他分隔符
默認情況下,我們使用反斜槓*/*作爲分隔符,比如替換url地址中的協議頭:

sed 's/http:\/\//www/' file.txt

這種情況下,字串包含了我們的分隔符,如果要正確的使用sed命令,我們需要對字串中的分隔符關鍵字進行轉義,這樣做的話,代碼既不美觀而且可讀性也比較差,因此,我們可以通過修改分隔符的方式實現。
比如使用下劃線

sed 's_http://_www_' file.txt

還可以使用豎線分隔符

sed 's|http://|www|' file.txt

6.使用&符號作爲匹配字串
比如,如果我們需要查找某些匹配字串,並且對應匹配的字串前後增加一些其他的字符,這時候,我們就可以使用*&*符號
在這裏插入圖片描述

7.使用\1,\2等標識
模式中,第一對括號用\1表示,以此類推,比如,你想替換某個字串兩次,那麼可以使用如下方式:

在這裏插入圖片描述

比如,前後兩個字符交換位置
在這裏插入圖片描述

或者,交換每一行中前三個字符的順序:
在這裏插入圖片描述

8.重複打印替換行
你可以使用/p來重複打印替換行,如果某一行存在匹配字串,那麼*/p*參數會在終端重複打印替換後的內容,如果當前行不存在匹配字串,沒有進行替換操作,那麼僅打印一次原來的內容。
在這裏插入圖片描述

9.只打印替換後的內容
使用*-n*參數,接例8,如果我們只想打印顯示替換後的內容,那麼我們可以通過指定**-n**參數來實現。

在這裏插入圖片描述

10.同時執行多個sed命令

方式一,前者的輸出作爲後者的輸入。

在這裏插入圖片描述

方式二,使用**-e**參數

在這裏插入圖片描述

11.對指定行進行字串替換

只對第三行執行字串替換

在這裏插入圖片描述

12.只對特定範圍的字串進行替換

只對第一到第三行的內容執行字符替換操作

在這裏插入圖片描述

從第二行開始直到文件最後一行
在這裏插入圖片描述

13.匹配行上進行替換
首先指定一個匹配模式,如果當前行存在匹配字串,則將當前行中的A替換爲B,下圖示例中,如果當前行中存在linux字串,則將該行中的unix替換爲centos

在這裏插入圖片描述

14.刪除行

可以刪除指定行或者多行
在這裏插入圖片描述

15.複製行
使用/p
在這裏插入圖片描述

16.作爲grep命令
在這裏插入圖片描述

在這裏插入圖片描述

17.匹配行後添加一行

使用a
在這裏插入圖片描述

  1. 匹配行前添加一行
    使用i
    在這裏插入圖片描述

19.替換某一行

使用c
在這裏插入圖片描述

20.字符轉換操作,類似tr操作

使用/y

在這裏插入圖片描述

https://www.folkstalk.com/2012/01/sed-command-in-unix-examples.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章