AWK管道输出至SED,以更换
我正在尝试使用AWK管道替换一个字符串AWK管道输出至SED,以更换,awk,sed,Awk,Sed,我正在尝试使用AWK管道替换一个字符串 grep pdo_user /html/data/_default_/configs/application.ini | awk '{print $3}' | sed -i 's/$1/"username"/g' /html/data/_default_/configs/application.ini 但找到的字符串未被替换 输出 grep pdo_user/html/data/_default\u/configs/application.ini | a
grep pdo_user /html/data/_default_/configs/application.ini | awk '{print $3}' | sed -i 's/$1/"username"/g' /html/data/_default_/configs/application.ini
但找到的字符串未被替换
输出
grep pdo_user/html/data/_default\u/configs/application.ini | awk'{print$3}'
是
“根目录”
有什么建议吗?我建议使用awk和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
使用AWK和SED基于方舱顶部的工作解决方案
sed -i 's/'$(awk '/pdo_user/{print $3}' /path/to/application.ini)'/"username"/' /path/to/application.ini
请参阅:但是
AWK
中的$3
是一个字符串“root”
,我每次都需要用“username”
替换's/$1/“username”/g'
我建议用's/'$1'/“username”/g'
替换<代码>$1
不应包含任何sed可以解释为命令的特殊字符。我认为您需要类似于sed的/'$(awk'/pdo_user/{print$3}'/path/to/application.ini)/“username”//path/to/application.ini
?祝你好运。@Cyrus更正-我正在搜索pdo_user
,它在3r位置包含一些字符串(在本例中,字符串是“root”
),我想用“username”
(两个字符串都包含双引号)替换该字符串,但pdo_user
可能不同于“root”
这只是在我的例子中,但是这个例子足够好,可以在没有语句&&$3==“root\”