我有一个大于4gb的文件,这对我来说是个坏消息,因为我无法在记事本++中打开该文件,并使用宏功能记录并重复进程到文件的末尾。 我想要做的是,保留前20行文本,然后删除下一行80,然后将该过程重复到文件末尾。
最简单的方法是什么? 我在Linux服务器上查看这些文件,因此运行某种脚本是最简单的方法,或者有人知道在vi中执行此操作的方法吗? (因此是蹩脚的分娩)
提前致谢
答案 0 :(得分:9)
awk
可以相当轻松地完成此操作:
awk '(NR-1)%100 < 20' bigfile.txt
答案 1 :(得分:2)
我会选择awk解决方案,但这里有一种方法可以用sed做同样的事情:
seq 20 | sed 's/$/~100p/' | sed -nf - bigfile.txt
测试:
seq 20 | sed 's/$/~100p/' | sed -nf - <(seq 200)
输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120