![일련의 줄을 새 파일에 복사](https://linux55.com/image/79199/%EC%9D%BC%EB%A0%A8%EC%9D%98%20%EC%A4%84%EC%9D%84%20%EC%83%88%20%ED%8C%8C%EC%9D%BC%EC%97%90%20%EB%B3%B5%EC%82%AC.png)
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
$