JackTheKnife
JackTheKnife

Reputation: 4154

AWK pipe output to SED to replace

I'm trying to replace a string using AWK pipe out to SED

grep pdo_user /html/data/_default_/configs/application.ini | awk '{print $3}' | sed -i 's/$1/"username"/g' /html/data/_default_/configs/application.ini

but found string is not replaced

Output for

grep pdo_user /html/data/_default_/configs/application.ini | awk '{print $3}'

is

"root"

Any tips on that?

Upvotes: 2

Views: 8603

Answers (2)

JackTheKnife
JackTheKnife

Reputation: 4154

Working solution based on Shelter's tip using AWK and SED

sed -i 's/'$(awk '/pdo_user/{print $3}' /path/to/application.ini)'/"username"/' /path/to/application.ini

Upvotes: 1

Cyrus
Cyrus

Reputation: 88999

I suggest to use awk and mv:

awk '/pdo_user/ && $3=="\"root\"" {$3="\"username\""}1' /path/to/application.ini > /path/to/application.tmp
mv /path/to/application.tmp /path/to/application.ini

Upvotes: 2

Related Questions