-3

I want to update files values used for database connection in this file:

./software/config/database.yml

file content:

base: &base
  adapter: mysql2
  username: root
  password:

How I can set username and password using bash?

Peter Penzov
  • 1,126
  • 134
  • 430
  • 808

1 Answers1

2
awk -F: -v OFS=: '/username/{$2=" NEWUSER"} /password:/{$2=" NEWPASS"}1' inputfile
base: &base
  adapter: mysql2
  username: NEWUSER
  password: NEWPASS

If new username and password are stored in a variable :

awk -F: -v OFS=: -v newPass=" NEWPASS" -v newUser=" NEWUSER" '/username/{$2=newUser} /password:/{$2=newPass}1' input

For editing file:

 awk -F: -v OFS=: -v newPass=" NEWPASS" -v newUser=" NEWUSER" '/username/{$2=newUser} /password:/{$2=newPass}1' inputfile > user.tmp && mv user.tmp inputfile
P....
  • 17,421
  • 2
  • 32
  • 52