我有一个包含 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
$