首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何删除文本文件中的每一行?

如何删除文本文件中的每一行?
EN

Stack Overflow用户
提问于 2012-03-27 17:59:36
回答 6查看 39.7K关注 0票数 27

考虑具有科学数据的文本文件,例如:

代码语言:javascript
运行
复制
5.787037037037037063e-02 2.048402977658663748e-01
1.157407407407407413e-01 4.021264347118673754e-01
1.736111111111111049e-01 5.782032163406526371e-01

例如,我如何轻松地删除文件中的每一行或每10行中的9行?例如,使用bash脚本可以吗?

背景:文件很大,但我需要的数据要少得多。请注意,我使用的是Ubuntu/Linux。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-03-27 18:07:37

这很容易用awk实现。

移除每一行:

代码语言:javascript
运行
复制
awk 'NR % 2 == 0' file > newfile

每隔10行删除一次:

代码语言:javascript
运行
复制
awk 'NR % 10 != 0' file > newfile

awk中的NR变量是行号。在awk中,{}之外的任何内容都是有条件的,默认操作是打印。

票数 63
EN

Stack Overflow用户

发布于 2012-03-27 18:26:29

perl怎么样?

代码语言:javascript
运行
复制
perl -n -e '$.%10==0&&print'       # print every 10th line
票数 6
EN

Stack Overflow用户

发布于 2012-03-27 18:04:49

你可以用sed做这件事。

代码语言:javascript
运行
复制
sed -n -e 'p;N;d;' file # print every other line, starting with line 1

如果你有GNU,那就很容易了

代码语言:javascript
运行
复制
sed -n -e '0~10p' file # print every 10th line
sed -n -e '1~2p' file # print every other line starting with line 1
sed -n -e '0~2p' file # print every other line starting with line 2
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9894986

复制
相关文章

相似问题

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