Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 00:34 11.07.25 
Компютри и Интернет
   >> Linux
*Кратък преглед

Страници по тази тема: 1 | 2 | 3 | 4 | (покажи всички)
Тема упътване за Search and replace функция  
Автор Иcтopиka (руски шпионин)
Публикувано15.02.05 19:47



Значи имам шел достъп (SSH) , до веб сървар(Apache/1.3.27 ) ОС- FreeBSD 4.6 Чрез командния ред с putty примерно.Целта е да намирам даден текстов стринг и да го заменям с друг ,в дадена директория и всички вложени директории/файлове в нея. Къде да търся такава команда/функция и пояснения как се ползва .Ако някои ми напише синтаксиса още по добре :)
пробвах с гоогле,ама нямам опит с линукс и нещо май незнам де да търся :)



Тема Re: упътване за Search and replace функциянови [re: Иcтopиka]  
Авторl (Нерегистриран)
Публикувано15.02.05 21:04



Например:

for i in `find директория -type f` ; do mv $i $i.save; cat $i.save | sed -e 's/търси/промени/g' > $i ; rm -f $i.save ; done

П.П. Не гарантирам, че е вярно, мързи ме да го пробвам.



Тема Re: упътване за Search and replace функциянови [re: Иcтopиka]  
Автор Пay ()
Публикувано16.02.05 14:13



Вадя този текст от личните архиви, прати ми го един колега за същия проб, работи ок:

find . -name "*.txt" -exec perl -i -n -p -e 's/PATTERN1/PATTERN2/g' {} \;
find . -name "*.txt" -exec perl -i'.bkp' -n -p -e 's/PATTERN1/PATTERN2/g' {} \;

pyrvoto namira PATTERN1 vyv vsichki failove i go zamenja s PATTERN2
a vtoroto e syshtoto ama pravi backup na faila s extention '.bkp'

-------------
мисля, че понякога find бере ядове, ако маски със звезди не са му сложени в кавички, може би линукският да се оправя ок, но за да сме сигурни, по-добре да бъде find . -name "*.txt", за да не го разпъне шелът вместо да остави find да си го обработва

Редактирано от Пay на 16.02.05 17:11.



Тема Re: упътване за Search and replace функциянови [re: Пay]  
Автор __me (новак)
Публикувано16.02.05 14:30



а ако на машината няма пърл и ако файловете му не се казват *.тхт? какво ще прави?



Тема Re: упътване за Search and replace функциянови [re: Иcтopиka]  
Авторвъпpoc (Нерегистриран)
Публикувано16.02.05 14:45



find /dir -type f | xargs replace "string1" "string2" --

Това ще работи ако имаш mysql инсталиран(командата replace е част от него) - и ще смени string1 със string2 във всички фаилове на всички вложени директории на директорията /dir - не забравяй двете тирета в края "--". Можеш да филтрираш определени фаилове ако добавиш опции към командата find - разгледай ман страницата и.



Тема Re: упътване за Search and replace функциянови [re: въпpoc]  
Авторl (Нерегистриран)
Публикувано16.02.05 15:56



Айдее, първо perl, сега mysql ...

Какво стана със стария Юникски принцип "Less Is More"?



Тема Re: упътване за Search and replace функциянови [re: l]  
Автор __me (новак)
Публикувано16.02.05 16:18



ужас,
man less...
(по памет де)
less is the opposite of more



Тема Re: упътване за Search and replace функциянови [re: l]  
Автор __me (новак)
Публикувано16.02.05 16:20



>perl, mysql ...
бе то и в САП Р3 сигурно има някаква такава функция, като сме тръгнали, някой знае ли я?



Тема Re: упътване за Search and replace функциянови [re: __me]  
Автор Пay ()
Публикувано16.02.05 17:05



Явно пишейки, че вадя написаното от запазен за мен пример, това трябва да показва, че нещото ще трябва да се пригоди. Явно не винаги съм го ползвал за замяна на тхт файлове и явно ако няма Пърл, е загазил

Просто дадох моето решение на проблем в миналото, което ползвах, допреди да хвана replace скрипта. Ако му върши работа на човека, ще си го пригоди за него

Поздрави.

---
His name is Wonderful



Тема Re: упътване за Search and replace функциянови [re: Иcтopиka]  
Автор sdg (shebang addict)
Публикувано16.02.05 17:14



for f in `find /dir -type f`; do sed 's/old/new/' < $f > /tmp/`basename $f`.tmp && /bin/mv /tmp/`basename $f`.tmp $f; done


RTFM!
--sdg



Страници по тази тема: 1 | 2 | 3 | 4 | (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.