[OT] SED и AWK only

2007-06-26 Пенетрантность Denis Golubev
Добрый день, сообщество.

Есть проблема: на сервер ночью попадают куча файлов, далее скриптом они
раскладываются по папочкам. Всё бы ничего но надо в этих файлах сделать
одну замену:
строку   param name = hosturl value=http://host1:port1/local; /
надо поменять на
строку   param name = hosturl value=http://host2:port2/local; /

Причём host1 и port1 могут быть разные. host2 и port2 - всегда
одинаковые.
Из серьёзных вещей на сервере в наличии есть sed и awk (ну и стандартные
типа bash, grep, cat, find etc). Перла, ПХП и прочего нет и не
предвидится. Я б наверное и сам допёр, но вопрос надо решить сегодня, а
копаюсь в мануалах я долго. Подскажите плиз, если кто знает как.



[OT] sed и awk only

2007-06-26 Пенетрантность Denis Golubev

Добрый день, сообщество.

Есть проблема: на сервер ночью попадают куча файлов, далее скриптом они
раскладываются по папочкам. Всё бы ничего но надо в этих файлах сделать
одну замену:
строку   param name = hosturl value=http://host1:port1/local; /
надо поменять на
строку   param name = hosturl value=http://host2:port2/local; /

Причём host1 и port1 могут быть разные. host2 и port2 - всегда
одинаковые.
Из серьёзных вещей на сервере в наличии есть sed и awk (ну и стандартные
типа bash, grep, cat, find etc). Перла, ПХП и прочего нет и не
предвидится. Я б наверное и сам допёр, но вопрос надо решить сегодня, а
копаюсь в мануалах я долго. Подскажите плиз, если кто знает как.


--
Best regards, Golden mailto:[EMAIL PROTECTED]


Re: [OT] SED и AWK only

2007-06-26 Пенетрантность Denis Golubev
Прошу прощения за продублированное сообщение!

On Tue, 26 Jun 2007 10:05:21 +0300
Denis Golubev [EMAIL PROTECTED] wrote:

 Добрый день, сообщество.
 
 Есть проблема: на сервер ночью попадают куча файлов, далее скриптом они
 раскладываются по папочкам. Всё бы ничего но надо в этих файлах сделать
 одну замену:
 строку   param name = hosturl value=http://host1:port1/local; /
 надо поменять на
 строку   param name = hosturl value=http://host2:port2/local; /
 
 Причём host1 и port1 могут быть разные. host2 и port2 - всегда
 одинаковые.
 Из серьёзных вещей на сервере в наличии есть sed и awk (ну и стандартные
 типа bash, grep, cat, find etc). Перла, ПХП и прочего нет и не
 предвидится. Я б наверное и сам допёр, но вопрос надо решить сегодня, а
 копаюсь в мануалах я долго. Подскажите плиз, если кто знает как.
 
 
 



Re: [OT] sed и awk only

2007-06-26 Пенетрантность Vladimir Krivitsky
10:08 Tue 26 Jun , Denis Golubev :

sed 's/\(.*http:\/\/\)[^:]*:[^\/]*\(\/.*$\)/\1host2:port2\2/'


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [OT] SED и AWK only

2007-06-26 Пенетрантность Иван Лох
On Tue, Jun 26, 2007 at 10:05:21AM +0300, Denis Golubev wrote:
 раскладываются по папочкам. Всё бы ничего но надо в этих файлах сделать
 одну замену:
 строку   param name = hosturl value=http://host1:port1/local; /
 надо поменять на
 строку   param name = hosturl value=http://host2:port2/local; /
 
 Причём host1 и port1 могут быть разные. host2 и port2 - всегда
 одинаковые.
 Из серьёзных вещей на сервере в наличии есть sed и awk (ну и стандартные
 типа bash, grep, cat, find etc). Перла, ПХП и прочего нет и не

Вы вероятно хотите, что-то вроде

sed -e '/hosturl/ s|http://.*/local|http://host2:port2/local|'

но если это XML, то по-хорошему здесь надо использовать XSLT процессор


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [OT] sed и awk only

2007-06-26 Пенетрантность Victor Wagner
On 2007.06.26 at 11:20:00 +0300, Vladimir Krivitsky wrote:

 10:08 Tue 26 Jun , Denis Golubev :
 
 sed 's/\(.*http:\/\/\)[^:]*:[^\/]*\(\/.*$\)/\1host2:port2\2/'

А кто будет проверять, что это именно hosturl? В техзадании ничего не
сказано, что в этом файлике не может быть других http url.

Надо бы выражение расширить так, чтобы оно проверяло что 
заменяемая URL является значением атрибута value, а перед значением
поставить ограничивающее условие, что это именно param name=hosturl

А вообще бы стоило это через xsltproc делать. Но его, небось, тоже нету.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [OT] sed и awk only

2007-06-26 Пенетрантность Mikhail Gusarov

 VW А вообще бы стоило это через xsltproc делать. Но его, небось, тоже нету.

И вообще, в условии задачи ничего не говорилось про то, что файлы - валидный
XML. Может это SGML какой? :)

А вообще я видел, когда, мнэ... недопрограммисты, не понимая, что такое XML,
лепили похожие на него форматы и писали для них парсеры).

-- 
JID: [EMAIL PROTECTED]


Re: [OT] SED и AWK only

2007-06-26 Пенетрантность Nikita V. Youshchenko
Denis Golubev wrote:

 Добрый день, сообщество.
 
 Есть проблема: на сервер ночью попадают куча файлов, далее скриптом они
 раскладываются по папочкам. Всё бы ничего но надо в этих файлах сделать
 одну замену:
 строку   param name = hosturl value=http://host1:port1/local; /
 надо поменять на
 строку   param name = hosturl value=http://host2:port2/local; /
 
 Причём host1 и port1 могут быть разные. host2 и port2 - всегда
 одинаковые.
 Из серьёзных вещей на сервере в наличии есть sed и awk (ну и стандартные
 типа bash, grep, cat, find etc). Перла, ПХП и прочего нет и не
 предвидится. Я б наверное и сам допёр, но вопрос надо решить сегодня, а
 копаюсь в мануалах я долго. Подскажите плиз, если кто знает как.

find . -type f | xargs sed -i '@[EMAIL PROTECTED]@'


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [OT] sed и awk only

2007-06-26 Пенетрантность Иван Лох
On Tue, Jun 26, 2007 at 03:45:15PM +0700, Mikhail Gusarov wrote:
 
  VW А вообще бы стоило это через xsltproc делать. Но его, небось, тоже нету.
 
 И вообще, в условии задачи ничего не говорилось про то, что файлы - валидный
 XML. Может это SGML какой? :)

Содержащий / ?

 А вообще я видел, когда, мнэ... недопрограммисты, не понимая, что такое XML,
 лепили похожие на него форматы и писали для них парсеры).

Да, но гипотеза о том, что tag помещается в одну строчку, ничуть не менее
смелая, чем версия о XML. 


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [OT] sed и awk only

2007-06-26 Пенетрантность Kirill A. Korinskiy
Denis Golubev - debian-russian@lists.debian.org  @ Tue, 26 Jun 2007 10:08:53 
+0300:


 DG Есть проблема: на сервер ночью попадают куча файлов, далее скриптом они
 DG раскладываются по папочкам. Всё бы ничего но надо в этих файлах сделать
 DG одну замену:
 DG строку   param name = hosturl value=http://host1:port1/local; /
 DG надо поменять на
 DG строку   param name = hosturl value=http://host2:port2/local; /

 DG Причём host1 и port1 могут быть разные. host2 и port2 - всегда
 DG одинаковые.
 DG Из серьёзных вещей на сервере в наличии есть sed и awk (ну и стандартные
 DG типа bash, grep, cat, find etc). Перла, ПХП и прочего нет и не
 DG предвидится. Я б наверное и сам допёр, но вопрос надо решить сегодня, а
 DG копаюсь в мануалах я долго. Подскажите плиз, если кто знает как.

sed 's|\(value=\)\(.*http://\)[^:]*:[^/]*\(/.*\)|\1\2host2:port2\3|'

Можно уточнить до

sed 
's|\(param.*\)\(value=\)\(.*http://\)[^:]*:[^/]*\(/.*\)\(.*\)|\1\2\3host2:port2\4\5|'

Ну или что ты захочешь. Вроде достаточно понятно как дальше расширять или 
уточнять.

-- 
 .''`.   Kirill A. Korinskiy [EMAIL PROTECTED]
: :'  :  proud maniac programmer
`. `'`   http://catap.ru/ - +7 (916) 3-604-704 - xmpp:[EMAIL PROTECTED]
  `- Debian - when you have better things to do than fixing systems
   -- madduck


pgpnZEKVH5RHh.pgp
Description: PGP signature


Re: [OT] sed и awk only

2007-06-26 Пенетрантность Denis Golubev
On Tue, 26 Jun 2007 13:32:46 +0400
Иван Лох [EMAIL PROTECTED] wrote:

 On Tue, Jun 26, 2007 at 03:45:15PM +0700, Mikhail Gusarov wrote:
  
   VW А вообще бы стоило это через xsltproc делать. Но его, небось, тоже 
  нету.
  
  И вообще, в условии задачи ничего не говорилось про то, что файлы - валидный
  XML. Может это SGML какой? :)
 
 Содержащий / ?
 
  А вообще я видел, когда, мнэ... недопрограммисты, не понимая, что такое XML,
  лепили похожие на него форматы и писали для них парсеры).
 
 Да, но гипотеза о том, что tag помещается в одну строчку, ничуть не менее
 смелая, чем версия о XML. 
 

файлы являются HTML 4.0. Закрывающий тег по правилам XML - не более чем
дань уважения правилам кодирования.
Другие http:// в урле действительно могут встречаться, но у них нет
суффикса /local



Re: [OT] sed и awk only

2007-06-26 Пенетрантность Иван Лох
On Tue, Jun 26, 2007 at 06:01:25PM +0300, Denis Golubev wrote:
  Содержащий / ?
  
   А вообще я видел, когда, мнэ... недопрограммисты, не понимая, что такое 
   XML,
   лепили похожие на него форматы и писали для них парсеры).
  
  Да, но гипотеза о том, что tag помещается в одну строчку, ничуть не менее
  смелая, чем версия о XML. 
 
 файлы являются HTML 4.0. Закрывающий тег по правилам XML - не более чем
 дань уважения правилам кодирования.

Офигенная дань уважения. weblint наше все.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]