Здравствуйте.
Нужно выполнить замену строки 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
Проблема с экранирование насколько я понял.
Ткните, пожалуйста, где косяк
> Здравствуйте.
> Нужно выполнить замену строки 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; donesed -i 's/RewriteCond %{HTTP_USER_AGENT} DigExt \[OR\]/TEST/g' $i
Что-то вы лишнего наэкранировали.
>> Здравствуйте.
>> Нужно выполнить замену строки 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
> Что-то вы лишнего наэкранировали.Пробовал и так уже - не работает замена(
> Пробовал и так уже - не работает замена(УМВР:
[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, либо ошибка где-нибудь в другом месте.
>>> Здравствуйте.
>>> Нужно выполнить замену строки 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
>[оверквотинг удален]
> [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/'?
>[оверквотинг удален]
>> 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
> [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]' ничего не вернуло. Добейтесь чтобы возвращало.