Como GaryJohn disse, você entendeu errado o regex. (* - >. *)
Mas eu iria um pouco mais longe, enquanto você está nisso ... Eu não sei como é o seu arquivo, mas apenas para praticar, eu gostaria de fazer um pouco de sua operação de busca / substituição. mais seguro.
Digamos que você queira executar a tarefa em um arquivo como este:
user=john
superuser=jimmy # don't want to change this line!
user=L33t_us3rn4m3 # that should work too, and these comments should remain intact as well, btw
# in the line below, I want to change user=hello to user=bob
# but in the comments, "user=hello" should remain intact
user=hello
Com a sua sintaxe atual de sed, isso seria completamente errado. Para torná-lo um pouco mais específico, você pode tentar:
sed -i 's/^user=[A-Za-z0-9_]*/user=bob/g' /tmp/myfile
Isto irá:
- é acionado apenas quando a linha realmente começa com "usuário" (o ^)
- altere apenas "user=" na medida em que consiste em 0 ou mais
letras, dígitos ou sublinhados
- deixe tudo por trás do nome de usuário (ou seja, os comentários no meu exemplo) intacta
Isso não é de forma alguma uma coisa super segura que funcionará sempre e em todos os lugares onde você deseja renomear usuários. Obviamente, isso depende de como seu arquivo de configuração está configurado e o que você esperaria encontrar.
Mas minha resposta é para dar um pouco de "comida para o pensamento", porque dado um (número de) arquivo (s) de configuração grande o suficiente para esperar tantos nomes de usuários não querer fazer isso manualmente, cegamente substituindo "user =. * "parece possivelmente perigoso. Você pode querer passar algum tempo polindo esses tipos de operações:)
Boa sorte.