Как я заполняю конечные тэги с помощью sed, awk или какую-либо другую команду?

Один прием:

  • установите свой курсор на первый символ первой строки для комментария
  • нажмите Ctrl-V для ввода в Визуальный Блочный режим
  • свалите свой курсор до последней строки для комментария
  • нажмите I (shift+i) для ввода в условный режим вставки
  • нажмите, '"' для комментария (кавычка и пространство)
  • нажмите Esc для выхода из режима вставки

Все Ваши выбранные строки теперь предварительно ожидаются строкой, которую Вы ввели в режиме вставки.

5
09.11.2014, 19:27
2 ответа

С помощью ввода:

<abc>def<
<firstword>anotherword</firstword>
<ghi>klm<

Использовать:

sed 's/<\([^>]*\)>\(.*\)<$/<\1>\2<\/\1>/' input

Выход:

<abc>def</abc>
<firstword>anotherword</firstword>
<ghi>klm</ghi>

Строка sed влияет только на строки, заканчивающиеся на < (из-за <$) и ловит паттерны между первой парой <> и между '><' и вставляет все обратно, дублируя первую пару в конце (плюс закрывающее '>')

.
10
27.01.2020, 20:33

Вот подход на perl, по сути такой же, как и у Антона sed:

$ perl -pe 's/<(.+)>(.+)</<$1>$2<\/$1>/' file
<sss>ss</sss>
3
27.01.2020, 20:33

Теги

Похожие вопросы