首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在bash上移除STDOUT中的n行

在bash上移除STDOUT中的n行
EN

Stack Overflow用户
提问于 2012-08-31 08:55:56
回答 3查看 3.3K关注 0票数 0

您有任何bash解决方案来从stdout中删除N行吗?

像“head”命令一样,打印所有行,只有最后N行除外

在巴什上的简单孤岛:

找到./test_dir/ sed '$d‘\n.

但我需要复制sed命令N次

有更好的解决办法吗?除了awk,python等..。

EN

回答 3

Stack Overflow用户

发布于 2012-08-31 09:02:18

使用带负数的head。在我的示例中,它将打印所有行,但最后3行:

代码语言:javascript
运行
复制
head -n -3 infile
票数 6
EN

Stack Overflow用户

发布于 2015-06-25 06:14:57

如果head -n -3文件名不能在您的系统上工作(就像我的文件名一样),您也可以尝试以下方法(并且可能别名它或在您的.bashrc中创建函数)

代码语言:javascript
运行
复制
head -`echo "$(wc -l filename)" | awk '{ print $1 - 3; }'` filename

其中文件名和上面的3分别是您的文件和行数。

票数 1
EN

Stack Overflow用户

发布于 2018-10-11 04:42:05

tail命令可以从Mac / BSD文件的末尾跳过。tail接受+/-前缀,这有助于下面的表达式,从一开始将显示3行

代码语言:javascript
运行
复制
tail -n +3 filename.ext

或者,若要跳过文件末尾的行,请使用-前缀。

代码语言:javascript
运行
复制
tail -n -3 filenme.ext

通常,tail的缺省值是-前缀,因此从文件的末尾开始计算。在这里看到与另一个问题类似的答案:Print a file skipping first X lines in Bash

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

https://stackoverflow.com/questions/12212013

复制
相关文章

相似问题

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