1つだけ過去を変えられるとしたら?

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

A 回答 (2件)

コマンドでなくて、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にコピーします。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/07/26 12:36

headとtailを組み合わせれば出来ます。



たとえば、aaa.txt の201行目から300行目までの100行を bbb.txt に、というときは

head -300 aaa.txt | tail -100 > bbb.txt

とします。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/07/26 12:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています