我希望能夠更改配置文件中的特定設置,其中包括刪除註釋掉這些設置的註釋代碼(;
)。此外,我想保留真實的評論。這意味着,更改配置文件和複雜註釋操作
some_setting=0
或
;some_setting=0
既能成爲
some_setting=9
但是,這也意味着,
some_setting=0 ;an honest-to-goodness comment
或
;some_setting=0 ;an honest-to-goodness comment
將
some_setting=9 ;an honest-to-goodness comment
我還不想離開
;Idle talk about some_setting=
孤單。
我似乎能夠與
sed -e 's/^\s*;\?\s*some_setting\s*=.*\(;\)\?/some_setting=9 \1/'
實現幾乎所有的這一點,但問題是真正的意見得到剝離出來有some_setting
線。請注意,我已經在許多這些令牌周圍留出了空格。
我已經看過使用awk
這個,但它似乎最好的選擇是sed
。
我在Debian 8.3上爲此使用了GNU sed 4.2.2。
這是正確的:如果一行以'some_setting ='或'; some_setting ='開始,它應該被修改爲以'some_setting = 9'開頭,其他所有內容都不應該被觸摸? –
「其他所有」意味着其他行應該保持不變,是的。 – Opux