Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Простое регулярное выражение  (Прочитано 847 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Grrrrrow

  • Автор темы
  • Активист
  • *
  • Сообщений: 321
    • Просмотр профиля
Есть строка:
'http://security.ubuntu.com/ubuntu/pool/main/l/linux/linux-image-3.13.0-52-generic_3.13.0-52.85_i386.deb' linux-image-3.13.0-52-generic_3.13.0-52.85_i386.deb 14666704 MD5Sum:4b3f57826929a01be105c822863f3eda
Нужно ее привести к виду:
http://security.ubuntu.com/ubuntu/pool/main/l/linux/linux-image-3.13.0-52-generic_3.13.0-52.85_i386.deb 4b3f57826929a01be105c822863f3eda
Т.е - "ссылка контрольная_сумма"

Еще нужно в переменную sum передать вид контролuьной суммы, если в строке написано MD5Sum, то начение пееменной - md5sum, если SHA256SUM то - sha256sum.

Строк много, это файл-лист вывода apt-get --print-uris.
« Последнее редактирование: 06 Мая 2015, 07:53:52 от Grrrrrow »

Оффлайн TAvol

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Простое регулярное выражение
« Ответ #1 : 06 Мая 2015, 12:30:40 »
Так чисто на обум)если это текстовый файл (или можно перевести в него)то потом достаете notepad++ (на винде точно есть) и там регуляркой делается не особо долго.
Если ответ не такой какой Вы ждали то не обижайтесь, смотрю тема есть а ответов нет, вот и вставил свои 5 коп.)) На убунте недавно, а на винде делал всю подобную хренотень.

Оффлайн ARTGALGANO

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1936
    • Просмотр профиля
Re: Простое регулярное выражение
« Ответ #2 : 06 Мая 2015, 13:10:18 »
sed -i "s/\('http.*'\) \(.*\) \(.*\):\([0-9]*\)/\1 \3:\4/" file
пробуй на копии

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Простое регулярное выражение
« Ответ #3 : 06 Мая 2015, 22:48:08 »
Код: (bash) [Выделить]
sed 's/ .*sum://i'Как Вы собираетесь обрабатывать переменную, если у нее много значений?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Grrrrrow

  • Автор темы
  • Активист
  • *
  • Сообщений: 321
    • Просмотр профиля
Re: Простое регулярное выражение
« Ответ #4 : 11 Мая 2015, 15:52:53 »
ARTGALGANO, Azure,
Задача решена, всем спасибо за ответы, но это не совсем то, забыл написать, там еще в начале вывода пишет вот это:
(Нажмите, чтобы показать/скрыть)

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

Скрипт для создания листа (ссылка+контрольная_сумма):
(Нажмите, чтобы показать/скрыть)

Скрипт для скачивания и проверки контрольных сумм пакетов:
(Нажмите, чтобы показать/скрыть)

Установка:
(Нажмите, чтобы показать/скрыть)

Все работает, проверено.
« Последнее редактирование: 11 Мая 2015, 16:24:51 от Grrrrrow »

 

Страница сгенерирована за 0.056 секунд. Запросов: 23.