2016-02-29 73 views
1

我遇到sed實用程序的問題。我必須用一個字符串替換正則表達式,但只能在包含另一個特定字符串的行上。還有什麼我必須從文件中讀取,然後通過sed進行修改,而不僅僅是導出替代值。這是我曾嘗試:sed與特定的字符串

sed -e '`grep aa test`"s/aa/xx/g test' 

sed -n '/aa/p' test | sed s/aa/xx/g 

grep aa test | sed 's/aa/xx/g' 
+0

任何採樣數據或例如? – sat

回答

0

使用的ADRESS前s命令:

sed '/aa/ s/aa/xx/g' test 

s命令將只包含地址模式

行申請,但也沒有必要有地址和s命令中的相同模式。

一個更好的例子將是:

sed '/bb/ s/aa/xx/g' test 
+0

謝謝,它的作品!我很高興你沒有寫RTFM – korky

+1

雖然這是相當多餘的, 's/aa/xx /'只會修改符合條件的行,並且不會修改其他行。有些情況下你需要一個地址,但這不是其中之一(當你這樣做時,有一個方便的簡寫;替換的「from」部分中的空字符串將重用地址正則表達式;因此, AA /秒// XX /')。 – tripleee

+0

@tripleee我更新了答案。 – SLePort