cat phpmyadmin/config.inc.php | grep 'blowfish_secret'
返回值= $ cfg ['blowfish_secret'] ='A-wImn {Ax [K5F7MQg.2Uh6D1ICU:C0fe';
grep 'blowfish_secret' config.php | awk -F "'" '{print $4}'
返回值= A-wImn {Ax [K5F7MQg.2Uh6D1ICU:C0fe
grep -n "blowfish_secret" phpmyadmin/config.inc.php | cut -d: -f 1
返回值= 17
我的目标是将第17行的值“ A-wImn {Ax [K5F7MQg.2Uh6D1ICU:C0fe””替换为“ my_random_string”,而不替换整行。有办法实现吗?
将感谢您的任何建议
答案 0 :(得分:2)
尝试awk:
awk -v repl="my_random_string" '
BEGIN {FS = OFS = "\047"}
$2 == "blowfish_secret" {$4 = repl}
1
' config.file
使用单引号作为字段分隔符,如果第二个字段为右键,则替换第四个字段。 awk中的"\047"
是一个包含一个字符和一个单引号的字符串。
要将新内容写回到原始内容:选择其中之一
awk -v ... config.file > tempfile && mv tempfile config.file
awk -v ... config.file | sponge config.file # from the 'moreutils' package
gawk -i inplace -v ... config.file