一連の行を新しいファイルにコピーする

一連の行を新しいファイルにコピーする

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
$ 

おすすめ記事