200行のファイルがあります。
10〜100行を抽出して新しいファイルに入れる必要があります。
UNIX / Linuxでこれを行うにはどうすればよいですか?
使用できるコマンドは何ですか?
ベストアンサー1
使用sed:
sed -n -e '10,100p' input.txt > output.txt
sed -n
方法いいえデフォルトでは、すべての行が印刷されます。-e
次のパラメーターがsedスクリプトで実行されることを示します。 10行から100行(含む)までその行を10,100p
印刷()することを意味するsedスクリプトです。p
その後、出力はoutput.txt
。
ファイルが提案されたものより長い場合、このバージョン(コメントで提案されている)はより速くなります。
sed -e '1,9d;100q'
これは意味する削除ライン1-9、辞める100行目以降の残りの部分を印刷します。 200行の場合はこれは重要ではありませんが、200,000行の場合、最初のバージョンは印刷しなくてもまだすべての行が表示されます。一般的に私は明示的なので、最初のバージョンを好むが、長いファイルの場合、これははるかに高速です。データを最もよく知っているのはユーザーです。
または、以下を組み合わせて使用できますhead
。tail
tail -n +10 input.txt | head -n 91 > output.txt
今回は、tail -n +10
ファイル全体を10行から印刷し、head -n 91
最初の91行(元のファイルの最大100行)を印刷します。output.txt
同じ方法でリダイレクトされます。