[OT] SED и AWK only
Добрый день, сообщество. Есть проблема: на сервер ночью попадают куча файлов, далее скриптом они раскладываются по папочкам. Всё бы ничего но надо в этих файлах сделать одну замену: строку 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
Добрый день, сообщество. Есть проблема: на сервер ночью попадают куча файлов, далее скриптом они раскладываются по папочкам. Всё бы ничего но надо в этих файлах сделать одну замену: строку 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
Прошу прощения за продублированное сообщение! 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
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
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
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
VW А вообще бы стоило это через xsltproc делать. Но его, небось, тоже нету. И вообще, в условии задачи ничего не говорилось про то, что файлы - валидный XML. Может это SGML какой? :) А вообще я видел, когда, мнэ... недопрограммисты, не понимая, что такое XML, лепили похожие на него форматы и писали для них парсеры). -- JID: [EMAIL PROTECTED]
Re: [OT] SED и AWK only
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
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
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
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
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]