Quantcast
Channel: Linux.org.ru: Форум (тех. форум)
Viewing all articles
Browse latest Browse all 74628

sed: очистить/удалить предыдущую/следующую строку по условию

$
0
0

Здравствуйте! Просьба помочь выполнить следующую задачу: Необходимо написать однострочники sed, реализующие следующие функции:

  • Если строка содержит текст, удалить следующую строку;
  • Если строка содержит текст, очистить следующую строку;
  • Если строка содержит текст, удалить предыдущую строку;
  • Если строка содержит текст, очистить предыдущую строку.

Понимаю, что для этой цели нужно использовать конструкцию вида:

sed -e ":a;/IF/N;s/THEN$/\n/g;ta;"
или что-то подобное, но не понимаю, как это сделать, особенно удаление. В случае с удалением, я пытаюсь использовать невидимый символ x0D, который удалиться в следующем пайпе, например:
sed -e ":a;/-$/N;s/\x0A.\+$/\x0D/g;ta;"
данный однострочник удалит следующую строку, если строка заканчивается на "-", но получается как-то коряво.

PS: прошу прощения, сейчас нет linux под рукой, использую unixutils.

 ,


Viewing all articles
Browse latest Browse all 74628

Latest Images

Trending Articles