LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 884|回复: 6

请问删掉文本的最后几行如何做?

[复制链接]
发表于 2003-10-13 21:09:16 | 显示全部楼层 |阅读模式
sed里面好些只能删除行号和匹配模式的啊
发表于 2003-10-13 21:35:02 | 显示全部楼层
如果简单的最后几行的话,记住那个行号,如20,那么可以用
sed -n '1,20p' filename >newfile
你还是可以把数据帖出来吧~~
 楼主| 发表于 2003-10-13 21:45:41 | 显示全部楼层
问题就是文件的行数不会相同啊,我也不想先在脚本里wc -l计算一下行数

数据是什么都可以,我想说的是在不知文件到底有多少行的情况下能够删掉倒数的几行
发表于 2003-10-13 22:22:01 | 显示全部楼层
用两次tac来试试看;)
tac filename|sed -n $((${n}+1)),${$}p|tac >newfile
其中,n是倒数的行号
发表于 2003-10-16 08:42:51 | 显示全部楼层

斑竹,能不能解释一下原理??

我在书上面好像没有看到这些东西啊??
希望能够帮助小弟
发表于 2003-10-16 12:28:55 | 显示全部楼层
tac的结果是最后行变首行....由于不知道文件有多少行,所以把文件给倒过来,然后选择一个行,最后再用tac恢复.
发表于 2003-10-16 17:38:12 | 显示全部楼层
还有个笨方法:

head -n $(( `wc -l filename|awk '{print $1}' - N )) >newfile

N就是要删的行数了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表