首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印n行,然后在大文本文件中跳过n行

打印n行,然后在大文本文件中跳过n行
EN

Stack Overflow用户
提问于 2016-02-11 12:29:29
回答 4查看 308关注 0票数 3

我想使用sed打印n行,跳过n行,打印n行,直到文本文件结束,从某一行开始。例如,在第4行,打印5-9,跳过10-14,打印15-19等

从文件中

代码语言:javascript
复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

我想要

代码语言:javascript
复制
5
6
7
8
9
15
16
17
18
19
25
26
27
28
29
35
36
37
38
39
etc

如果我尝试

代码语言:javascript
复制
sed -n '4~5p' FILE.txt > NEWFILE.txt 

将会给我

4.

9

14

19

我可不想这样。

EN

回答 4

Stack Overflow用户

发布于 2016-02-11 12:36:40

我不认为在sed中有一个简单的方法可以做到这一点,因为它不能做算术。awk更好:

代码语言:javascript
复制
awk 'NR%10 >= 5' FILE.txt > NEWFILE.txt

NR%10是以10为模的记录号(即行号的最后一位)。因此,这将打印行号的最后一位数至少为5: 5-9、15-19、25-29等的任何行。

票数 3
EN

Stack Overflow用户

发布于 2016-02-11 12:45:00

sed用于单个行上的简单替换,仅此而已。只需使用awk:

代码语言:javascript
复制
$ awk '!(NR%5){f=!f} f' file
5
6
7
8
9
15
16
17
18
19
票数 2
EN

Stack Overflow用户

发布于 2016-02-11 12:56:16

这是一个sed的解决方案。试着弄清楚这一点;)

代码语言:javascript
复制
sed -n 'n ; n ; n ; n ; n ; h ; n ; H ; n ; H ; n ; H ; n ; H ; x ; p' file
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35330807

复制
相关文章

相似问题

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