Отметьте случайные отмеченные строки с XML как тег

У меня есть файл с некоторыми случайными строками, отмеченными с помощью %, как отметить все отмеченное содержание с xml как тег.

ПРИМЕР:

tt gs sdf 
% sdjfsg
% sdfsdf

sdfsdf

% sdfsd
% rewerwe

Кому:

tt gs sdf 
<TAG>sdjfsg
sdfsdf</TAG>

sdfsdf

<TAG>sdfsd
rewerwe</TAG>
0
задан 1 May 2017 в 12:30

1 ответ

Вы могли дать 'sed' шанс...

sed -ri ':x;$!{N;bx};s/% ([^\n]*)(\n|$)/<tag>\1<\/tag>\n/g;s/<\/tag>\n<tag>/\n/g;s/\n$//' tst.txt

Это отметит Ваш файл на месте.

Объяснение:

  1. :x;$!{N;bx}-> globbing файл к одному bufferline
  2. s/% ([^\n]*)(\n|$)/<tag>\1<\/tag>\n/g-> отмечающий все строки, начинающиеся с '%'
  3. s/<\/tag>\n<tag>/\n/g->, удаляют ненужные теги (если закрывающий тэг, сопровождаемый открывающим тэгом)
  4. s/\n$//->, удаляют ненужную новую строку в конце файла

В конечном счете, возможно сделать это еще короче, но это было первым простым способом, которым я мог вообразить.

0
ответ дан 3 November 2019 в 07:59

Другие вопросы по тегам:

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