The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"поиск и замена в файлах при помощи sed"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"поиск и замена в файлах при помощи sed"  +/
Сообщение от che4 (ok) on 12-Ноя-10, 20:49 
Здравствуйте.
Нужно выполнить замену строки RewriteCond %{HTTP_USER_AGENT} DigExt [OR]

Делаю так:

for i in `find . -name "testfile" -exec grep -H 'RewriteCond %{HTTP_USER_AGENT} DigExt [OR]' {} \; | awk -F":" '{print $1}' | xargs`; do sed -i  's/RewriteCond %\{HTTP_USER_AGENT\} DigExt \[OR\]/TEST/g' $i; done

Проблема с экранирование насколько я понял.

Ткните, пожалуйста, где косяк

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "поиск и замена в файлах при помощи sed"  +/
Сообщение от phpcoder email(ok) on 12-Ноя-10, 20:52 
> Здравствуйте.
> Нужно выполнить замену строки RewriteCond %{HTTP_USER_AGENT} DigExt [OR]
> Делаю так:
> for i in `find . -name "testfile" -exec grep -H 'RewriteCond %{HTTP_USER_AGENT}
> DigExt [OR]' {} \; | awk -F":" '{print $1}' | xargs`;
> do sed -i  's/RewriteCond %\{HTTP_USER_AGENT\} DigExt \[OR\]/TEST/g' $i; done

sed -i  's/RewriteCond %{HTTP_USER_AGENT} DigExt \[OR\]/TEST/g' $i

Что-то вы лишнего наэкранировали.


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "поиск и замена в файлах при помощи sed"  +/
Сообщение от che4 (ok) on 12-Ноя-10, 20:56 
>> Здравствуйте.
>> Нужно выполнить замену строки RewriteCond %{HTTP_USER_AGENT} DigExt [OR]
>> Делаю так:
>> for i in `find . -name "testfile" -exec grep -H 'RewriteCond %{HTTP_USER_AGENT}
>> DigExt [OR]' {} \; | awk -F":" '{print $1}' | xargs`;
>> do sed -i  's/RewriteCond %\{HTTP_USER_AGENT\} DigExt \[OR\]/TEST/g' $i; done
> sed -i  's/RewriteCond %{HTTP_USER_AGENT} DigExt \[OR\]/TEST/g' $i
> Что-то вы лишнего наэкранировали.

Пробовал и так уже - не работает замена(

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "поиск и замена в файлах при помощи sed"  +/
Сообщение от phpcoder email(ok) on 12-Ноя-10, 20:58 
> Пробовал и так уже - не работает замена(

УМВР:

[c0der@rock ~]$ cat test.txt
RewriteCond %{HTTP_USER_AGENT} DigExt [OR]
[c0der@rock ~]$ sed 's/RewriteCond %{HTTP_USER_AGENT} DigExt \[OR\]/TEST/g' test.txt
TEST

Так что либо вы не указали что у вас какая-нибудь FreeBSD, либо старая версия GNU sed, либо ошибка где-нибудь в другом месте.


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "поиск и замена в файлах при помощи sed"  +/
Сообщение от che4 (ok) on 12-Ноя-10, 21:05 
>>> Здравствуйте.
>>> Нужно выполнить замену строки RewriteCond %{HTTP_USER_AGENT} DigExt [OR]
>>> Делаю так:
>>> for i in `find . -name "testfile" -exec grep -H 'RewriteCond %{HTTP_USER_AGENT}
>>> DigExt [OR]' {} \; | awk -F":" '{print $1}' | xargs`;
>>> do sed -i  's/RewriteCond %\{HTTP_USER_AGENT\} DigExt \[OR\]/TEST/g' $i; done
>> sed -i  's/RewriteCond %{HTTP_USER_AGENT} DigExt \[OR\]/TEST/g' $i
>> Что-то вы лишнего наэкранировали.
> Пробовал и так уже - не работает замена(

Что за непойму

[root@ryb]# cat test
RewriteCond %{HTTP_USER_AGENT} DigExt [OR]

[root@ryb]# sed 's/RewriteCond %{HTTP_USER_AGENT} DigExt \[OR\]/TEST/g' test
TEST

а вот так уже в файл не пишет

for i in `find . -name "test" -exec grep -H 'RewriteCond %{HTTP_USER_AGENT} DigExt [OR]' {} \; | awk -F":" '{print $1}' | xargs`; do sed -i  's/RewriteCond %{HTTP_USER_AGENT} DigExt \[OR\]/TEST/' $i; done

OS CentOS release 5.4 (Final)
GNU sed version 4.1.5

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "поиск и замена в файлах при помощи sed"  +/
Сообщение от phpcoder email(ok) on 12-Ноя-10, 21:09 
>[оверквотинг удален]
> [root@ryb]# cat test
> RewriteCond %{HTTP_USER_AGENT} DigExt [OR]
> [root@ryb]# sed 's/RewriteCond %{HTTP_USER_AGENT} DigExt \[OR\]/TEST/g' test
> TEST
> а вот так уже в файл не пишет
> for i in `find . -name "test" -exec grep -H 'RewriteCond %{HTTP_USER_AGENT}
> DigExt [OR]' {} \; | awk -F":" '{print $1}' | xargs`;
> do sed -i  's/RewriteCond %{HTTP_USER_AGENT} DigExt \[OR\]/TEST/' $i; done
> OS CentOS release 5.4 (Final)
> GNU sed version 4.1.5

А так?

find . -name "test" |
xargs grep -l 'RewriteCond %{HTTP_USER_AGENT} DigExt [OR]' |
xargs sed -i  's/RewriteCond %{HTTP_USER_AGENT} DigExt \[OR\]/TEST/'

?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "поиск и замена в файлах при помощи sed"  +/
Сообщение от che4 (ok) on 12-Ноя-10, 21:15 
>[оверквотинг удален]
>> for i in `find . -name "test" -exec grep -H 'RewriteCond %{HTTP_USER_AGENT}
>> DigExt [OR]' {} \; | awk -F":" '{print $1}' | xargs`;
>> do sed -i  's/RewriteCond %{HTTP_USER_AGENT} DigExt \[OR\]/TEST/' $i; done
>> OS CentOS release 5.4 (Final)
>> GNU sed version 4.1.5
> А так?
> find . -name "test" |
> xargs grep -l 'RewriteCond %{HTTP_USER_AGENT} DigExt [OR]' |
> xargs sed -i  's/RewriteCond %{HTTP_USER_AGENT} DigExt \[OR\]/TEST/'
> ?

[root@ryb]# find . -name "test" | xargs grep -l 'RewriteCond %{HTTP_USER_AGENT} DigExt [OR]' | xargs sed -i  's/RewriteCond %{HTTP_USER_AGENT} DigExt \[OR\]/TEST/'  
sed: no input files

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "поиск и замена в файлах при помощи sed"  +/
Сообщение от phpcoder email(ok) on 12-Ноя-10, 21:18 
> [root@ryb]# find . -name "test" | xargs grep -l 'RewriteCond %{HTTP_USER_AGENT} DigExt
> [OR]' | xargs sed -i  's/RewriteCond %{HTTP_USER_AGENT} DigExt \[OR\]/TEST/'
> sed: no input files

Похоже, что find . -name "test" | xargs grep -l 'RewriteCond %{HTTP_USER_AGENT} DigExt [OR]' ничего не вернуло. Добейтесь чтобы возвращало.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру