根据行号排除/忽略(不删除)第一行和最后一行

时间:2018-10-23 22:08:32

标签: linux sed

我正在使用sed命令编辑一些文本文件。

如何在每个文本文件中排除要编辑的第一行和最后一行。

我查看了sed gnu手册,但只找到匹配行范围(即1,$)或排除范围(即1,$!)的命令。我只需要排除第1行和最后一行$。我不确定是否可以选择一个范围,即2,$-1?

这是我的代码。

sed -e '1,$ s/.*/<p>&<\/p>/'' file.txt

1 个答案:

答案 0 :(得分:3)

您不能在sed地址中使用数学。但是您可以告诉sed在第一行和最后一行什么都不做:

sed -e '1n; $n; s/.*/<p>&<\/p>/'

其中n的意思是“将输入的下一行读入模式空间”(如果是最后一行,则不会读取任何内容)。

(表达式末尾的两个单引号可能是拼写错误,对吧?)