我有一个看起来像这样的(虚拟)文件:
header
1
2
3
4
5
6
7
8
9
10
我需要一个命令,它可以为我提供由每四行提取的行组成的不同文件,其中一行重叠。所以我会有这样的东西:
1
2
3
4
3
4
5
6
5
6
7
8
7
8
9
10
所以这是我得到的(不多,对不起):
尾巴 -n + 2 | sed -n 1,4p>窗口1.txt
但是我不知道如何将它应用于所有文件,并有重叠。
提前谢谢。
这可能
对你有用(GNU sed 和 split):
sed -nr '1{N;N;N};:a;p;$q;s/^.*n.*n(.*n.*)$/1/;N;N;ba' file | split -dl4
编辑:
要使此可编程使用:
sed -nr ':a;$!{N;s/[^n]+/&/4;Ta};p;$q;s/.*((n[^n]*){2})$/1/;D' file |
split -dl4 file-name-prefix
其中4
是每个文件的行数,2
是重叠行数。
File-name-prefix
是您选择的文件名,它将附加数字(请参阅人员拆分)。