我希望能够更改配置文件中的特定设置,其中包括删除注释掉这些设置的注释代码(;
)。此外,我想保留真实的评论。这意味着,更改配置文件和复杂注释操作
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