Как мне сопоставить шаблон с пробелами в нем и заменить его, не теряя объемного пустого пространства? - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь создать команду sed, которая будет соответствовать шаблону с пробелом в нем.Мне нужно найти строку «logstash-codec-line (3.0.8)» и заменить ее другой версией, например «logstash-codec-line (3.0.2)».Как бы я сделал это с файлом, который имеет строки, как показано ниже?

      logstash-codec-line
      logstash-codec-line
      logstash-codec-line
      logstash-codec-line (>= 2.1.0)
    logstash-codec-line (3.0.8)
      logstash-codec-line
      logstash-codec-line
      logstash-codec-line
      logstash-codec-line
  logstash-codec-line

Я пытаюсь сначала выполнить поиск файла, чтобы посмотреть, смогу ли я получить точную строку, которую я ищу, и ближайшуюполученный был:

grep logstash-codec-line.3* file

output:
      logstash-codec-line (>= 2.1.0)
    logstash-codec-line (3.0.8)

Что эквивалентно: sed -n "/logstash-codec-line.3*/p" file

Я не уверен, почему появляется строка с 2.1.0, но я надеюсь не соответствоватьэто также.Я хотел бы добраться до точки, где я могу:

sed -i "s/logstash-codec-line.3*/logstash-codec-line\ \(3.0.2\)/" file

...