|
Страници по тази тема: 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 | (покажи всички)
|
|
|