У меня есть ряд строк, которые я получаю из вывода команды.Они следуют этой схеме:
payload
constant value(u) constant(u)
payload
constant value(u) constant(u)
payload
В этом примере (u) - неизвестный символ / символы.
Что меня волнует, так это «полезная нагрузка», поэтому я удаляю «постоянное значение».(u) константа (u) "строк (сохраняя каждую вторую строку) с использованием sed:
sed -n '1~2!p'
Иногда, однако, существует дублирующая константа (u) константы (u) (u) «line и которое заставляет sed возвращать все следующие строки« constant value (u) constant (u) »» вместо строк «payload».
Я могу использовать регулярное выражение для удаления всех «констант»value (u) constant (u) "lines:
sed '/^constant.*constant.*$/d'
Но проблема в том, что у меня должно быть представление, что эта строка была там, даже если это не" полезная нагрузка "строка, поэтому я хочу заменить содержимое этой проблемной повторяющейся строки какой-либо строкой.Я хочу заменить только «проблемные» дублирующие строки.
Итак, вот пример ввода в обычном формате:
after 1 hour
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
after 2 hours
Cras id consequat nisl.
after 2 hours
Etiam non metus eu velit maximus dapibus.
after 1 hour
Etiam a mi quis ante congue posuere.
after 5 hours
Suspendisse et venenatis ipsum, aliquet pharetra tortor.
Это «проблемный» ввод:
after 1 hour
after 6 hours
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
after 2 hours
Cras id consequat nisl.
after 2 hours
Etiam non metus eu velit maximus dapibus.
after 1 hour
Etiam a mi quis ante congue posuere.
after 5 hours
Suspendisse et venenatis ipsum, aliquet pharetra tortor.
Желаемый результат (в случае проблемного ввода выше):
(no information)
after 6 hours
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
after 2 hours
Cras id consequat nisl.
after 2 hours
Etiam non metus eu velit maximus dapibus.
after 1 hour
Etiam a mi quis ante congue posuere.
after 5 hours
Suspendisse et venenatis ipsum, aliquet pharetra tortor.
Как подойти к этому наиболее эффективным способом?Я думаю, что я должен сопоставить «проблемные» строки с регулярным выражением и заменить их на нужную строку, но как?