200行のファイルのうち10から100行を新しいファイルに入れる方法

200行のファイルのうち10から100行を新しいファイルに入れる方法

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行の場合、最初のバージョンは印刷しなくてもまだすべての行が表示されます。一般的に私は明示的なので、最初のバージョンを好むが、長いファイルの場合、これははるかに高速です。データを最もよく知っているのはユーザーです。

または、以下を組み合わせて使用​​できますheadtail

tail -n +10 input.txt | head -n 91 > output.txt

今回は、tail -n +10ファイル全体を10行から印刷し、head -n 91最初の91行(元のファイルの最大100行)を印刷します。output.txt同じ方法でリダイレクトされます。

おすすめ記事