我正在使用sed命令编辑一些文本文件。
如何在每个文本文件中排除要编辑的第一行和最后一行。
我查看了sed gnu手册,但只找到匹配行范围(即1,$)或排除范围(即1,$!)的命令。我只需要排除第1行和最后一行$。我不确定是否可以选择一个范围,即2,$-1?
这是我的代码。
sed -e '1,$ s/.*/<p>&<\/p>/'' file.txt
答案 0 :(得分:3)
您不能在sed地址中使用数学。但是您可以告诉sed在第一行和最后一行什么都不做:
sed -e '1n; $n; s/.*/<p>&<\/p>/'
其中n
的意思是“将输入的下一行读入模式空间”(如果是最后一行,则不会读取任何内容)。
(表达式末尾的两个单引号可能是拼写错误,对吧?)