- ベストアンサー
ファイルのある行からある行までを別のファイルにコピーするコマンド
ファイルのある行からある行までを別のファイルにコピーするコマンドってありますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
headとtailを組み合わせれば出来ます。 たとえば、aaa.txt の201行目から300行目までの100行を bbb.txt に、というときは head -300 aaa.txt | tail -100 > bbb.txt とします。
その他の回答 (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にコピーします。
質問者
お礼
ありがとうございます。 awkのNRというのは知りませんでした。勉強になりました。
お礼
なるほど、これは分かりやすいですね。ありがとうございました。