Как удалить текст в файле до и после некоторого шаблона

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

file.txt:

data-number="210615" ... .... .... 1280654445itemitemURLhttps://site.site.com/user-user/fooo/210615/file.name.jpg?1280654445name...... ... ... ... ... 

 #!/bin/bash find_number=$(grep -Po 'data-number="\K[^"]*' file.txt) get-url= (copy from "https" to "fooo/" and add variable $find_number and add from "/" to end "jpg" maybe : get-url=("https*,*fooo/",$find-number,"/*.jpg") this is work or other idea? echo $get-url > result.txt 

result.txt:

 https://site.site.com/user-user/fooo/210615/file.name.jpg 

3 Solutions collect form web for “Как удалить текст в файле до и после некоторого шаблона”

Просто придерживайтесь команды grep как при извлечении числа:

 grep -Po "http.*?$find_number.*?\.jpg" 

Вот быстрый и грязный perl-хак, чтобы извлечь URL-адреса, соответствующие строке «номер-номер», найденной ранее на входе.

 #! /usr/bin/perl use strict; my $datanumber = 'stringthatwillneverbeintheinput'; while(<>) { chomp; if (m/^data-number/) { $datanumber = $_; $datanumber =~ s/^.*=|"//g; } elsif (m/$datanumber/) { s/^.*(http.*\.jpg).*/$1/; print "$_\n"; } } 

Пример вывода из приведенного выше ввода:

 https://site.site.com/user-user/fooo/210615/file.name.jpg 

Это кажется мне самым простым решением и не требует предварительной настройки каких-либо переменных:

 grep -oE "http.*$(grep data-number file.txt | cut -d'"' -f2).*\.jpg" file.txt 

Если вы хотите избежать вывода, на который ссылался @manuel, просто нарисуйте его, чтобы cut чтобы удалить строку запроса так:

 grep -oE "http.*$(grep data-number file.txt | cut -d'"' -f2).*\.jpg" file.txt | cut -d? -f1 
  • Сценарий оболочки с вводом каталога
  • Как написать сценарий sed для удаления чисел из строки?
  • Вычитание с помощью значений в массиве
  • Как перечислять файлы с именем XXXmmyy.dat в естественном хронологическом порядке?
  • Сопоставьте несколько регулярных выражений из одного файла с помощью awk
  • Невозможно использовать аргумент в сценарии расчета даты bash
  • ключевое слово grom () в bash бросает неожиданный '(' токен
  • Какова функция этого «user user @ domain где угодно» в автоматическом скрипте ftp?
  • Как запустить скрипт каждый раз, когда выполняется «yum update»?
  • Поиск файлов, более новых, чем другой файл в каждом подкаталоге
  • Переместить скрипт оболочки файла
  • Interesting Posts

    В верхнем регистре только первая буква каждой строки

    Можно ли установить Synapse Launcher в Debian?

    Хорошо ли устанавливать Linux на внешний жесткий диск?

    Как добавить добавочный счет в каждую строку текстового файла?

    Как отслеживать входящие HTTP-запросы

    ~ поведение оператора glob с пустым шаблоном

    Как я могу заставить irssi-proxy отправлять мне пропущенные упоминания, когда я подключаюсь?

    /etc/rc.d/postgres start vs rc.d postgres start

    Определите, имеет ли текущий пользователь права на запись в каталоге

    Различные домены для нескольких виртуальных машин на хосте с одним IP-адресом WAN

    Как скопировать файлы с помощью scp с удаленного хоста, когда файл имеет пробелы

    Обработка текста – поиск текста до / после заданного слова

    Fedora24, пытаясь установить java (JDK)

    GNOME-Terminal: создание новой вкладки терминала на удаленной машине

    Что означает отметка времени «00:00:00» в kern.log?

    Linux и Unix - лучшая ОС в мире.