iT邦幫忙

DAY 15
3

我與BASH shell scripting的每一天系列 第 15

我與BASH的每一天 - [15] sed - 3

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


上一篇
我與BASH的每一天 - [14] sed - 2
下一篇
我與BASH的每一天 - [16] 多條件選擇 - case
系列文
我與BASH shell scripting的每一天31

尚未有邦友留言

立即登入留言