我有一个以下格式的文件:
[users]
admin = 123456
user1 = 987654
它是一个密码文件,我需要更改用户密码。我可以获得所需的信息,但我不知道如何更换它。 这就是我阅读信息的方式:
admin=$(awk -F"[ \t]*=[ \t]*" '$1 == "admin" { print $2 }' file)
这会给我输入密码,但我不知道如何更换密码。我看着使用sed,但我不确定如何使用它。
答案 0 :(得分:3)
这是一个基本的sed问题,如果您的用户名和密码不包含空格
USER=admin ; sed "s/$USER = .*$/$USER = newpw/" file
显示
[users]
admin = newpw
user1 = 987654
使用-i.bak
选项编辑文件并使用.bak
扩展名创建备份。
无论如何,我希望你不要将密码存储在普通文件中。
答案 1 :(得分:1)
没有必要使用字段分隔符
awk 'BEGIN{FS=OFS=" = "}{ if($1=="admin") $2="abcdef" }'1 file
给出
[users]
admin = abcdef
user1 = 987654