首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用sed删除文件的最后n行

如何使用sed删除文件的最后n行
EN

Stack Overflow用户
提问于 2012-11-14 22:22:47
回答 19查看 262K关注 0票数 186

我想从文件的末尾删除一些n行。使用sed可以做到这一点吗?

例如,要删除从2到4的行,我可以使用

代码语言:javascript
复制
$ sed '2,4d' file

但我不知道行号。我可以使用以下命令删除最后一行

代码语言:javascript
复制
$sed $d file

但我想知道从末尾删除n行的方法。请告诉我如何使用sed或其他方法来做这件事。

EN

回答 19

Stack Overflow用户

回答已采纳

发布于 2012-11-14 22:26:41

我不知道sed如何,但可以用head完成

代码语言:javascript
复制
head -n -2 myfile.txt
票数 256
EN

Stack Overflow用户

发布于 2014-06-19 11:16:25

如果可以选择硬编码n,则可以使用对sed的顺序调用。例如,要删除最后三行,请删除最后一行三次:

代码语言:javascript
复制
sed '$d' file | sed '$d' | sed '$d'
票数 38
EN

Stack Overflow用户

发布于 2012-11-15 00:49:33

sed one-liners

代码语言:javascript
复制
# delete the last 10 lines of a file
sed -e :a -e '$d;N;2,10ba' -e 'P;D'   # method 1
sed -n -e :a -e '1,10!{P;N;D;};N;ba'  # method 2

看起来就是你要找的。

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13380607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档