shell中,如何删除文件的头尾行,而保留中间的特定行

我有一个sybase数据库的输出文件SCTP.log,内容如下:

pmSctpStatSentChunks TIME
----------------------- -----------
783987 Jan 30 2011 2:45PM
1845691 Jan 30 2011 2:45PM
785674 Jan 30 2011 2:30PM
1874602 Jan 30 2011 2:30PM

(4 rows affected)

问题是:在脚本中采用什么语句处理,可以去掉抬头和结尾行,而只保留中间四行数据行。现在已经知道在脚本中利用vi可以实现,但程序效率较低。现比较倾向awk等语句实现,或for循环等。语句越少越好
cat SCTP.log |sed '1d;2d;$d' 可以。但是(4 rows affected)上面有一行空格没有去掉,麻烦再帮忙改一下:)

第1个回答  推荐于2016-04-18
cat SCTP.log |sed '1d;2d;$d'

cat SCTP.log |sed '1d;2d;$d' |sed '$d'
cat SCTP.log |sed '1d;2d;$d' | grep " "

达到目的才是王道。不做开发,效率只要不过分低就可以。

cat SCTP.log | grep ^[0-9]本回答被提问者采纳
第2个回答  2011-02-12
sed -i '/^[^0-9]/d' SCTP.log

我晕,文件名改过来了,大神在看一眼
相似回答