sed的搜尋與取代命令可以透過附加g參數,來獲得全域性的更動效果。其實除了可以在sed中指定關鍵字或是全體來進行編輯的動作之外,sed更可以指定只在文章內的特定行數中進行搜尋與編輯。
指定位址的格式是: 位址 命令/字串/
# 只針對第5行執行取代的動作,將foo置換成bar
sed ‘5s/foo/bar’
# 只針對第5行不執行取代的動作,也就是除了地5行之外,將其他行中的foo置換成bar
sed ‘5!s/foo/bar’
# 在第5行到第10行間,將foo置換成bar
sed ‘5,10s/foo/bar’ – only process line 5 to 10.
# 將第5行之後,所有以test為開頭的內容印出來
sed -n '5,/^test/p' example
以上的程式碼中,s是substitute取代命令、p是print輸出命令。
**^**就是如同正規化表示法中,用以代表字串開頭的符號。
[本系列文章]
我與BASH的每一天 - [1]利用bc命令來取得數字字串中的特定欄位值
我與BASH的每一天 - [2]直取字串變數中的特定欄位值
我與BASH的每一天 - [3] 利用awk來擷取特定欄位
我與BASH的每一天 - [4] 利用awk來擷取特定欄位-2
我與BASH的每一天 - [5] 利用awk來擷取特定欄位-3
我與BASH的每一天 - [6] 利用cut來擷取特定欄位
我與BASH的每一天 - [7] grep指令的妙用 - 1
我與BASH的每一天 - [8] grep指令的妙用 - 2
我與BASH的每一天 - [9] 正規化表示法 - 1
我與BASH的每一天 - [10] 正規化表示法 - 2
我與BASH的每一天 - [11] 正規化表示法 - 3
我與BASH的每一天 - [12] 正規化表示法 - 4
我與BASH的每一天 - [13] sed - 1
我與BASH的每一天 - [14] sed - 2