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» без замены всей строки. Есть ли способ этого добиться?
Буду признателен за любое предложение





Попробуйте awk:
awk -v repl = "my_random_string" '
BEGIN {FS = OFS = "\047"}
$2 == "blowfish_secret" {$4 = repl}
1
' config.file
Используя одинарную кавычку в качестве разделителя полей, если 2-е поле является правой клавишей, замените 4-е поле. "\047" в awk - это строка, содержащая один символ, одинарную кавычку.
Чтобы записать новое содержимое обратно в исходное: выберите одно из
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
OFSне указан, по умолчанию будет использоваться пробел.