LINUX.ORG.RU

sed замена параметра в конфигурационном файле


0

0

Я думаю у всех возникали ситуации когда нужно заменить параметр в конфигурационном файле. Самый простой вариант sed -i '/SourcePar/ c\DestinationPar' /path/fail Это работает если надо заменить SourcePar на DestinationPar, для этого надо четко знать строку SourcePar Но часто возникает задача когда надо заменить SourcePar = YES на DestinationPar = NO причем не видя файла никто не знает какое на данный момент значение у SourcePar, т.е. как с помощью sed найти нужный параметр и заменить всю строку на нужную. Или еще один вариант

#SourcePar = NO надо заменит на SourcePar = YES


задача элементарная - советую читать маны...

cat <твой конфиг> | sed "/^#.*NO/{s/NO/YES;s/#//;}" > <измененный конфиг>

это второй случай...

а если там SourcePar DestinationPar, то соответственно:

cat <твой конфиг> | sed "/^#.*NO/{s/NO/YES;s/#//;s/SourcePar/DestinationPar/;}" > <измененный конфиг>

psychodealiq
()

сначала грепаешь конфиг по параметру, а потом уже и sed

Rain ★★★★
()

Гуглить на предмет регулярных выражений

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.