Найти и заменить строку и что за ней следует - PullRequest
0 голосов
/ 28 марта 2012

У меня есть следующие ссылки в файле дампа sql (.sql). Мне нужно использовать «sed или grep with regex» или что-то, чтобы заменить каждое вхождение #cheese-pasta= и все, что после него, включая косую черту.

Пример:

 <a href="somelink/#cheese-pasta=2011-13\">
  <a href="somelink/#cheese-pasta=\">

После замены это будет выглядеть так:

<a href="somelink/">

Я мог бы сделать что-то вроде sed /#cheese-pasta=/ /g но проблема в том, что за строкой следует другой материал, и я хочу заменить следующий за ним материал до кавычки, заканчивающей тег ссылки ()

Большое спасибо.

1 Ответ

1 голос
/ 28 марта 2012

Вы можете написать:

sed 's/#cheese-pasta=[^\\]*\\//g'

, который заменит #cheese-pasta=, за которым следует ноль или более символов, которые не являются обратной косой чертой, за которой следует обратная косая черта.

В качестве альтернативы:

sed 's/#cheese-pasta=[^"]*"/"/g'

(та же концепция, но с использованием " вместо \ для поиска конца текста для замены).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...