我有一个文本文件,我必须将标签(以普通文本的形式)添加到 .txt 文件。
例如,假设我有一个这样的文本文件:
a
b
c
d
e
f
g
h
我想在每 3 行之前和之后分别添加标签<hello>
和</hello>
,并使其看起来有点像这样:
<hello>
a
b
c
</hello>
<hello>
d
e
f
</hello>
<hello>
g
h
</hello>
我怎样才能实现这个目标?
答案1
以下是一种方法:
$ 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>
从第一行开始,每三行插入一次3~3a</hello>
从第 3 行开始,每三行附加一次</hello>
,但不包括文件的最后一行$
- 在最后一行
$
,添加结束标记,无论行号如何
如果文件包含 3 行的整数倍,那么就更简单了 - 只需
sed -e '1~3i<hello>' -e '3~3a</hello>' a.txt