У меня есть текстовый файл, где я должен добавить теги (в форме обычного текста) в .txt файл.
Например, предположите, что у меня есть текстовый файл как это:
a
b
c
d
e
f
g
h
Я хочу добавить теги <hello>
и </hello>
прежде и после каждых 3 строк, соответственно, и заставляют его несколько походить на это:
<hello>
a
b
c
</hello>
<hello>
d
e
f
</hello>
<hello>
g
h
</hello>
Как я могу достигнуть этого?
Вот один путь:
$ sed -e '1~3i<hello>' -e '3~3{$!a</hello>' -e'}' -e '$a</hello>' a.txt
<hello>
a
b
c
</hello>
<hello>
d
e
f
</hello>
<hello>
g
h
</hello>
Объяснение:
1~3i<hello>
вставить <hello>
каждая третья строка, запускающаяся в строке 13~3a</hello>
добавить </hello>
каждая третья строка, запускающаяся в строке 3, но, исключая последнюю строку файла $
$
, добавьте закрывающий тэг независимо от номера строкиЕсли файл содержит точное несколько из 3 строк затем, это более просто - просто
sed -e '1~3i<hello>' -e '3~3a</hello>' a.txt