gpt4 book ai didi

linux - Sed - 在跳过空行的同时将标签添加到行的开头和结尾

转载 作者:太空宇宙 更新时间:2023-11-04 10:05:25 25 4
gpt4 key购买 nike

我有多个文本文件,我正在尝试将段落标记添加到文件中每一行的开头和结尾,同时跳过第一行和空行。

到目前为止,我想出了下面的代码,但它没有跳过空行,而是在下面的新行上添加了

for i in *.txt; do sed -i -e '1 ! s/.*/<p>&<\/p>/' $i; done

例如假设文本文件如下所示:

This Is the File Name

Paragraph 1

Paragraph 2

Paragraph 3

Paragraph 4

这是我的代码得到的输出

This Is the File Name
<p>
</p>
<p>Paragraph 1
</p>
<p>
</p>
<p>Paragraph 2
</p>
<p>
</p>
<p>Paragraph 3
</p>
<p>
</p>
<p>Paragraph 4</p>

我想得到的是:

This Is the File Name

<p>Paragraph 1</p>

<p>Paragraph 2</p>

<p>Paragraph 3</p>

<p>Paragraph 4</p>

最佳答案

发生这种情况是因为 .* 匹配空字符串。只需使用 ..* 使其至少需要一个字符:

$ sed -i -e '1 ! s|..*|<p>&</p>|' file.txt
$ cat file.txt
This Is the File Name

<p>Paragraph 1</p>

<p>Paragraph 2</p>

<p>Paragraph 3</p>

<p>Paragraph 4</p>

关于linux - Sed - 在跳过空行的同时将标签添加到行的开头和结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52956841/

25 4 0