使用sed删除文件中的第一行和最后一行或记录

时间:2013-02-16 18:31:31

标签: sed awk

我想删除文件中的第一行和最后一行

file1代码:

H|ACCT|XEC|1|TEMP|20130215035845|

849002|48|1208004|1

849007|28|1208004|1

T|2

删除后输出应为

849002|48|1208004|1

849007|28|1208004|1

我已尝试过以下方法,但必须运行2次,我想要一次性解决方案一次性删除这两种方法!

sed '1,1d' file1.txt  >> file1.out
sed '$d' file1.out  >> file2

请建议一个班轮代码......

5 个答案:

答案 0 :(得分:25)

您可以使用;

sed '1d; $d' file

答案 1 :(得分:10)

使用命令分隔符

在sed中,您可以使用分号分隔命令。例如:

sed '1d; $d' /path/to/file

答案 2 :(得分:3)

怎么样:

sed '$d' < file1.txt | sed "1d"

答案 3 :(得分:0)

尝试sed -i '1d;$d' /path/to/file

答案 4 :(得分:-1)

awk 'NR>2{print v}{v=$0}'

从第3行开始,每次都打印上一行。这意味着不会打印第一行和最后一行。