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


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

Автор Тема: Как вырезать из файла кусок текста и отправить её в переменную  (Прочитано 5221 раз)

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

Оффлайн Dimaxwell

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Есть задача выдрать из этого текста кусок setup_7.0.0.290_24.11.2008_13-34.exe и отправить в переменную $url

<META HTTP-EQUIV="pragma" Content="no-cache"/>
<meta http-equiv="refresh" content="2;url=setup_7.0.0.290_24.11.2008_13-34.exe"/>

Как сделать на bash

Оффлайн picnik

  • Активист
  • *
  • Сообщений: 310
    • Просмотр профиля
Вот это должно помочь:
man awk
man sed

Оффлайн Nebulosa

  • Активист
  • *
  • Сообщений: 397
    • Просмотр профиля

burgua

  • Гость
« Последнее редактирование: 24 Ноябрь 2008, 20:08:07 от burgua »

Оффлайн Dimaxwell

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
А кто нибудь может написать примертакого скрипта? т.к. я честно говоря не нашел как обрезать от конца /url=/ и до /.exe/ например.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
[untested]
допустим этот текст в файле setup.html

url=`awk '/setup.*\.exe/{match($0,/url=([[[:alnum:]]\.]+)/,arr); print arr[0]}' setup.html`

[/untested]
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн tempx77

  • Участник
  • *
  • Сообщений: 212
    • Просмотр профиля
[tested] :)

текст в temp.html:
url=$(cat temp.html | grep url= | sed -e 's/^.*url=//g'|sed -e 's/".*$//g')

[/tested]

Оффлайн rubiсon

  • Активист
  • *
  • Сообщений: 285
  • u guys... srsly...
    • Просмотр профиля
[tested] :)

текст в temp.html:
url=$(cat temp.html | grep url= | sed -e 's/^.*url=//g'|sed -e 's/".*$//g')

[/tested]
Это, парень, называется большое половое извращение с конвейеризацией.

А это — малое половое извращение, и ничего лишнего:
url=`awk '/url=/ {print gensub(/.*url=([^"]+)".*/, "\\1", "g");}' temp.html`
<Aoi-chan> everyone's first vi session. ^C^C^X^X^X^XquitqQ!qdammit[esc]qwertyuiopasdfghjkl;:xwhat

Оффлайн Dimaxwell

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Спасибо всем вам за помощь, а нужно мне было это для этого!

!#/bin/bash
rm index.html
server=http://downloads5.kaspersky-labs.com/devbuilds/AVPTool/
wget -c $server
url=$(cat index.html | grep url= | sed -e 's/^.*url=//g'| sed -e 's/".*$//g')
wget -c $server/$url

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Как вырезать из файла кусок текста и отпра
« Ответ #9 : 25 Ноябрь 2008, 16:21:14 »
Dimaxwell, хз, зачем оно тебе, но так будет проще:
wget -r http://downloads5.kaspersky-labs.com/devbuilds/AVPTool

Оффлайн Dimaxwell

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: Как вырезать из файла кусок текста и отпра
« Ответ #10 : 25 Ноябрь 2008, 16:46:53 »
Dimaxwell, хз, зачем оно тебе, но так будет проще:
wget -r http://downloads5.kaspersky-labs.com/devbuilds/AVPTool

Вот в том то и дело что так оно только index.html качает :-)

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Вот в том то и дело что так оно только index.html качает :-)
Ниправда.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Сорри, виноват, недокопипастил последний символ:
wget -r http://downloads5.kaspersky-labs.com/devbuilds/AVPTool/

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
А это — малое половое извращение, и ничего лишнего:
url=`awk '/url=/ {print gensub(/.*url=([^"]+)".*/, "\\1", "g");}' temp.html`
Только там gawk, а не awk, и его надо сначала установить.
Но все равно спасибо  :)
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

 

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