Помогите с регулярным выражением....
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- tango
- Access Forbidden
- Сообщения: 247
- Зарегистрирован: 2007-12-15 17:41:18
- Откуда: Санкт- Петербург
- Контактная информация:
Помогите с регулярным выражением....
К примеру есть некий текст, в котором нужно найти выражение "192.168.0.1" и развернуть последовательность символов , чтобы получилось "1.0.168.192". Простая замена не подходит, т.к. исходное выражение вносится в файл из переменной. Тоесть изначально что нужно "развернуть в обратную сторону" я не знаю....Надеюсь понятно объяснила.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- Alex Keda
- стреляли...
- Сообщения: 35465
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Помогите с регулярным выражением....
разбить по точкам на октеты и с ними работать...
Убей их всех! Бог потом рассортирует...
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: Помогите с регулярным выражением....
почему простая замена не подходит
айпишники в тексте или просто айпи в переменной?
по-миму просто на перд
1) splite выод в массив
2) reverse сортировка в обратную сторону
3) join ('.', @массив); или через map
айпишники в тексте или просто айпи в переменной?
по-миму просто на перд
1) splite выод в массив
2) reverse сортировка в обратную сторону
3) join ('.', @массив); или через map
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: Помогите с регулярным выражением....
Код: Выделить всё
zg# echo 192.168.0.1 | awk -F\. '{print $4"."$3"."$2"."$1}'
1.0.168.192
zg#
-
- проходил мимо
Re: Помогите с регулярным выражением....
это если точек всего четыре. Но если их количество не определено, то не подойдет. Придется искать другое решение, напримерzg писал(а):Код: Выделить всё
zg# echo 192.168.0.1 | awk -F\. '{print $4"."$3"."$2"."$1}' 1.0.168.192
Код: Выделить всё
$ echo 192.168.0.1.001.10029.0292.2302.023 | awk -F. '{ for(i=NF; i>0; i--) s=s $i"." } END { sub("\.$", "", s); print s }'
023.2302.0292.10029.001.1.0.168.192
127.1 = 127.0.0.1
::1 = 0000:0000:0000:0000:0000:0000:0000:0001
Если топикстартеру попадется похожий адрес для обработки...
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: Помогите с регулярным выражением....
и что? что мешает выбрать только те данные, в которых количество точек строго определено?Гость писал(а):Но если их количество не определено
man 3 inet впрёд и с песней можно и по уму сделать, но ресурсозатраты будут другими, а результат таким же. Задача была чётко поставлена, про IPV6 и сокращения сказано не былоГость писал(а):ибо как в ipv6, так и в ipv4 нули можно сокращать.
-
- проходил мимо
Re: Помогите с регулярным выражением....
sorry, моя телепатическая антенна не уловила хода твоих мыслей. Что я должен найти в inet(3)?zg писал(а):man 3 inet впрёд и с песнейГость писал(а):ибо как в ipv6, так и в ipv4 нули можно сокращать.
задача как раз четко поставлена не былаzg писал(а):можно и по уму сделать, но ресурсозатраты будут другими, а результат таким же. Задача была чётко поставлена, про IPV6 и сокращения сказано не было
лично я не совсем понял хода мыслей tango, мало контекста. Единственное, что четко задано "развернуть в обратную сторону" и дан всего лишь один пример. Там нет ни слова, что все данные будут касаться ipv4. А "исходное выражение вносится в файл из переменной" понятно лишь автору, у коего есть скрипт, выражение (регулярное?) и переменная.tango писал(а):..развернуть последовательность символов , чтобы получилось "1.0.168.192". Простая замена не подходит, т.к. исходное выражение вносится в файл из переменной. Тоесть изначально что нужно "развернуть в обратную сторону" я не знаю....
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: Помогите с регулярным выражением....
гм.. при чём тут телепатия? там читать надоГость писал(а):sorry, моя телепатическая антенна не уловила хода твоих мыслей.
ну... там много чего полезного написано на тему ipv4, на тему ipv6 есть man 4 inet6Гость писал(а):Что я должен найти в inet(3)?
ну да, про реализацию скрипта тоже ничего не сказано, так чего же ты на авк стал катать? следуя твоей логике катай уж на всех языках и под все платформы, а не только под юникс. Будь последователенГость писал(а):Там нет ни слова, что все данные будут касаться ipv4
- Alex Keda
- стреляли...
- Сообщения: 35465
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: Помогите с регулярным выражением....
естьlissyara писал(а):авк есть под винду
Код: Выделить всё
C:\Documents and Settings\zg>gawk --version
GNU Awk 3.1.0
Copyright (C) 1989, 1991-2001 Free Software Foundation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
C:\Documents and Settings\zg>