Как применить патч к Pulseaudio?

С sed:
sed 's/id_ad=\(.*\)&action/\1/' filename

Объяснение:

Команда выше возвращает любые строки (.*) между двумя словами START (id_ad=) и END (&action ]) в имени файла. \(...\) Используется для захвата групп. \( - начало группы захвата и заканчивается на \). И с \1 мы печатаем его индекс группы (у нас есть одна группа захвата)

. Лучшая команда sed для вышеуказанного решения может быть такой:

sed 's/^id_ad=\([0-9]*\)&action/\1/' filename

^ Начало строки. [0-9]*: Любое число с 0 или более вхождениями. Подробнее о команде sed

С grep:

Объяснение:

grep -Po '(?<=id_ad=)[0-9]*(?=&action)' filename

От man grep:

-o, --only-matching
      Print only the matched (non-empty) parts of a matching line,
      with each such part on a separate output line.
-P, --perl-regexp
      Interpret PATTERN as a Perl compatible regular expression (PCRE)

Возвращает любое число с 0 или более вхождений ([0-9]*) между двумя словами START (id_ad=) и END word (&action) в имени файла.

(?<=pattern): положительный Lookbehind. Пара круглых скобок с открывающей скобкой, за которой следует знак вопроса, символ «меньше» и знак равенства.

(?<=id_ad=)[0-9]* (положительный lookbehind) соответствует 0 или более числам чисел, которые следуют после id_ad= в имени файла.

(?=pattern): Положительный Lookahead: Положительная конструкция lookahead представляет собой пару круглых скобок с открывающей скобкой, за которой следует знак вопроса и знак равенства.

[0-9]*(?=&action): (положительный lookahead) соответствует 0 или более вхождений чисел, за которыми следует шаблон (&action), не делая шаблон (&action) частью совпадения. Подробнее о команде sed

Дополнительные ссылки: Подробнее см. в команде sed GREP для дизайнеров

131
задан 15 July 2017 в 14:33

0 ответов

Другие вопросы по тегам:

Похожие вопросы: