Страница 1 из 1
Замена строчек в файле
Добавлено: 13 апр 2011, 08:25
Alex87
Здраствуйте, скажите пожалуста как и каким образом можно заменить уже известную строку(т.е. что в строке написано) в файле.
и как это сделать из скрипта?
Re: Замена строчек в файле
Добавлено: 13 апр 2011, 08:42
leave
sed -i -e 's/что/на_что/' file.txt
Re: Замена строчек в файле
Добавлено: 18 апр 2011, 09:54
Alex87
а еще скажите пожалуйста,вот у меня в скрипте пишу,
мне надо заменить "DEVICE /dev/ttyS0" на "DEVICE ",
Код: Выделить всё
sed -i -e 's/"DEVICE /dev/ttyS0"/"DEVICE "/'
он не меняет + еще когда пишу:
Код: Выделить всё
echo "Enter name ups:"
read NAME
sed -i -e 's/#UPSNAME/#UPSNAME $NAME/'
он и это отказывается делать - вместо нормального имени пишет $NAME.
я чот ваще не понимаю ..
Re: Замена строчек в файле
Добавлено: 18 апр 2011, 15:05
mend0za
Откройте для себя удивительный мир кавычек Bourne Shell. И отличие одиночной кавычки от двойной.
Re: Замена строчек в файле
Добавлено: 21 апр 2011, 07:05
Alex87
да действительно. Но еще один момент чот не понял, как сделать однократную замену самого первого совпадения во всем файле?
делая так он ищет первое совпадение в каждой строке - если я так понял ман. вот и получается у меня в двух местах замена... в первом где надо и все путем, а во втором не надо заменять...
в строчки эти как раз содержат #UPSNAME:
1) #UPSNAME
2) #UPSNAME UPS_IDEN
Re: Замена строчек в файле
Добавлено: 21 апр 2011, 08:18
mend0za
Два способа - либо указать номер строки, либо более точно указать шаблон поиска и замены
Например:
Код: Выделить всё
sed -i -e '10 s/#UPSNAME/#UPSNAME '$NAME'/'
или
sed -i -e 's/#UPSNAME$/#UPSNAME '$NAME'/'