• ベストアンサー

ファイルのある行からある行までを別のファイルにコピーするコマンド

ファイルのある行からある行までを別のファイルにコピーするコマンドってありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • shige_70
  • ベストアンサー率17% (168/946)
回答No.2

headとtailを組み合わせれば出来ます。 たとえば、aaa.txt の201行目から300行目までの100行を bbb.txt に、というときは head -300 aaa.txt | tail -100 > bbb.txt とします。

taurus4
質問者

お礼

なるほど、これは分かりやすいですね。ありがとうございました。

その他の回答 (1)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

コマンドでなくて、awkとか使えば簡単にできますが。 たとえば10行から20行までコピーするのであれば、 awk 'NR>=10 || NR<=20 {print $0}' file1 > file2 としてみればでしょうか。 これを、たとえばcp2というシェルスクリプトとして使用したいのであれば、 #!/bin/sh awk -v from=$3 -v to=$4 'NR>=from || NR<=to {print $0}' $1 > $2 というようにしてみては? 書式は、 cp2 filename1 filename2 from to で、filename1 の from行から to行までfilename2にコピーします。

taurus4
質問者

お礼

ありがとうございます。 awkのNRというのは知りませんでした。勉強になりました。

関連するQ&A