我有一个用户帐户文件:
[account]
username = mike
password = mike
expdate = 2015-02-14
city = blah
address = blah
[account]
username = george
password = george
city = blah
address = blah
expdate = 2015-02-14
[account]
username = hans
password = hans
city = blah
expdate = 2015-02-14
address = blah
因此,每个用户帐户都以[帐户]开头,并在其下面具有某些值。
我想使用gnu sed将用户“mike”的expdate值更改为:
expdate = 2016-02-14
因此,它只应在第一次出现以下情况后更改:
username = mike
问题是,expdate可以是用户名下面的任意行。
这能用gnu-sed解决吗?
最佳答案
你可以试试这个sed
,
sed '/mike/,/\[account\]/{s/\(expdate[^=]\+=\).*/\1 2016-02-14/}' yourfile
关于linux - 使用sed替换图案下的第一个匹配项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22350134/