|
Тема |
Re: упътване за Search and replace функция [re: Иcтopиka] |
|
Автор |
Пay () |
|
Публикувано | 18.02.05 12:28 |
|
|
Това, което ми идва на ум, е проблемът, че шелът замества 1:1 стойонстта на променливата в стринга и после гледа какво е станало, а като имаш наклонени черти като служебни символи и като част от самия текст, става каша и шелът или пърл се ошашкват.
Опитай пред всяка / черта да сложиш обратната \
Така казваш на шела (или на пърл), че следващият знак си е баш каквато е буквата, а не да го тълкува превратно. Примерно
usr/local/html/vhosts/domain.com/httpdocs/ става
usr\/local\/html\/vhosts\/domain.com\/httpdocs\/
Друг вариант е да опиташ да напишеш в променливите стринговете в единични кавички (апостроф):
prom1="'usr/local/html/vhosts/domain.com/httpdocs/'";
( " ' ---- ' " e двойка апостроф+кавичка, апострофите са вътрешни за кавите)
Това по принцип мисля значи да се тълкува всичко между двете части буквално като символи, т.е да не се зачитат служебни символи и да се разпъват имена на променливи с техните им стойности. В такъв случай трябва да смениш апострофите на пърл код блока да е с кавички, за да не се омешат там нещата на свой ред, ето така:
-exec perl -i -n -p -e "s/PATTERN1/PATTERN2/g"
Успех.Редактирано от Пay на 18.02.05 12:45.
|
| |
|
|
|