일련의 줄을 새 파일에 복사

일련의 줄을 새 파일에 복사

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

이 프로세스를 자동화하는 쉘 스크립트를 작성할 수 없습니다. 누구든지 나를 도울 수 있습니까? 미리 감사드립니다.

답변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
$ 

관련 정보