将一组行复制到新文件中

将一组行复制到新文件中

我有一个包含 100,000 行或更多行的文本文件。我想使用以下命令将文本文件中的特定行复制到新文件中:

sed -n '1,1000p;1000q' orig-data-file > new-file

但是,我想通过以如下方式复制一组行来创建一系列新文件:

First line, last line
1,1000
1001,2000
2001,3000
3001,4000
so on

我无法编写 shell 脚本来自动执行此过程。有谁能够帮助我。提前很多赞赏。

答案1

正如评论中所述,您可以使用 来完成这项工作split。不过,既然你要了sed,那我就给你sed。 (如果你不想使用的话,这是一个非常好的工具split。)

这是一个例子:

$ cat input.txt
Header
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
Line 11
Line 12
$ sed -n -e '1{w file1' -e 'w file2' -e 'w file3' -e '};2,5w file1' -e '6,10w file2' -e '11,$w file3' input.txt 
$ cat file1
Header
Line 2
Line 3
Line 4
Line 5
$ cat file2
Header
Line 6
Line 7
Line 8
Line 9
Line 10
$ cat file3
Header
Line 11
Line 12
$ 

相关内容