2012-07-23 74 views
1

我想匹配一行並使用sed命令替換它。像與一個詞匹配的unix sed命令

aaa = 10 
aaa =10 
aaa=10 

我sed的正則表達式的一些東西應該匹配所有這些模式,應像BBB = 5取代。我試過

 sed -i '/ *aaa *= */bbb=5' 

但是,這並不適用於所有模式。任何幫助都將非常可觀。

+1

應'sed的-i '/ * AAA * =。*/BBB = 5 /'' – 2012-07-23 19:01:21

+0

第一匹配解決這類問題的一個步驟是準確地指定問題。解決方案几乎會立即生效。 (鑑於當前的問題規範,似乎用'bbb = 5'替換所有輸入行是可接受的解決方案。) – 2012-07-23 19:40:59

回答

4
sed -i 's/\s*aaa\s*=\s*[0-9]*/bbb=5/' input_file 
1
cat myfile | sed 's/\s*aaa\s*=\s*\(.*\)/bbb = \1/' 

的\ S字符類既標籤和空間

+0

對於\ 1替換爲+1,對於UUOC爲-1。 – 2012-07-23 19:42:36

+0

\ 1在某些發行版中需要sed選項-r – 2012-09-29 11:40:32

4
cat a | sed -e '1s/aaa =10/bbb=10/' -e '2s/ aaa =10/bbb=10/' -e '3s/aaa=10/bbb=10/'