鉴于文件user.txt,我想用“michael”替换username1“john”。
假设该文件包含以下数据。
username1.user=john/password2.user=xyz
我想在文件中搜索String“username1”,然后用michael替换名称john。但是john可以在文件中出现多次,而“username1”只出现一次。
我在想是否可以使用sed搜索String“username1.user =”,然后以某种方式编辑下一个字符,用michael替换john而不更改任何文本(保留“/password2.user=xyz” “同样如此。”
提前致谢。
答案 0 :(得分:1)
如果用户名是唯一的
sed '/^username1\./{s/john/michael/}'
答案 1 :(得分:1)
替换任何名称:
$ sed 's:^\(username1\.[^=]*=\)[^/]*:\1michael:' file
username1.user=michael/password2.user=xyz
仅在名称为john时才替换:
$ sed 's:^\(username1\.[^=]*=\)john:\1michael:' file
username1.user=michael/password2.user=xyz