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


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

Автор Тема: вырезать текст используя bash  (Прочитано 1192 раз)

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

Оффлайн UnknownWhite

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
вырезать текст используя bash
« : 26 Января 2016, 20:44:59 »
текст в котором содержится строка https:\/\/scontent1.kurazh.com\\/6_58_7865_n.jpg"   , как ее извлечь и записать в переменную var(например). Количество строк, размер файла неизвестны.  Скрипт находит слово https и копирует до того момента пока слово не закончится .jpg

пытался с sed намутить ничего не вышло. Помогите пожалуйста.

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: вырезать текст используя bash
« Ответ #1 : 26 Января 2016, 21:26:41 »
grep -oE 'https://(.)*.jpg'
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн UnknownWhite

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: вырезать текст используя bash
« Ответ #2 : 26 Января 2016, 21:33:03 »
Да оно) спасибо большое!


а если в тексте не одна такая строка, а несколько, то как мне их вывести
« Последнее редактирование: 26 Января 2016, 21:34:36 от UnknownWhite »

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: вырезать текст используя bash
« Ответ #3 : 26 Января 2016, 21:43:29 »
echo -e 'https://scontent1.kurazh.com/6_58_7865_n.jpg\nhttps://scontent1.kurazh.com/6_58_7865_n.jpg' | grep -oE 'https://(.)*.jpg'
https://scontent1.kurazh.com/6_58_7865_n.jpg
https://scontent1.kurazh.com/6_58_7865_n.jpg
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн UnknownWhite

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: вырезать текст используя bash
« Ответ #4 : 26 Января 2016, 22:04:24 »
Спасибо Вам

Пользователь решил продолжить мысль [time]26 Январь 2016, 23:44:16[/time]:
А вот еще

#!/bin/bash
var=`grep -P -o "https://(.)*.jpg" index.html`
wget $var

этот скрипт видит только первую встречную ссылку, я так понял нужен цикл? чтобы затронуть остальные ссылки заканчивающие на .jpg
« Последнее редактирование: 26 Января 2016, 22:46:14 от UnknownWhite »

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: вырезать текст используя bash
« Ответ #5 : 26 Января 2016, 23:19:06 »
UnknownWhite, можно вывод первой команды перенаправить в файл, а потом wget -i имяФайла
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: вырезать текст используя bash
« Ответ #6 : 26 Января 2016, 23:23:02 »
grep -o "https://[^[:blank:]]*\.jpg" index.html | xargs -n1 wgetработает почти на любых системах
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

 

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