Я пытаюсь создать команду 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