電子書籍の厳選無料作品が豊富!

シェルでテキストをファイルを半分削除することは可能でしょうか?ログファイルが大きくなりすぎてしまいこまっています。丸ごとコピー、削除を行いたくないので、半分削除、できれば半分削除して削除分を別ファイルとして保存したいと考えています。よろしくお願いします。

A 回答 (2件)

splitコマンドがあります。


split -l 1000 ログファイル とすると
ログファイルを1000行単位に分割し、
xab,xaa等のファイルに出力してくれます。
詳細は man splitで確認して下さい。

この回答への補足

ありがごうございます。split でファイルを分割することはできるようになりました。ただ、今回の場合ファイルがとてつもなく大きいので、元のファイルを残して分割ファイルを別途作成することができません。何かよい方法がないですかね~

補足日時:2005/08/09 17:41
    • good
    • 0

>今回の場合ファイルがとてつもなく大きいので、元のファイルを残して分割ファイルを別途作成することができません。

何かよい方法がないですかね

以下の方法が考えられます。
1案.
他のシステムのファイル領域を借用する。NFSを使用して、今回のログファイルが2つ分以上格納できる領域を確保し、そこで分割する。
もしくは、十分な空き領域のある他のシステムへログファイルをFTPで転送し、そこで分割する。
これが、もっとも簡単な方法ですが、他のシステムが使えることが前提です。
2案.
1案がだめなら、以下の方法です。
以下のようなプログラムを作ります。
1)ログファイルのnバイトを終端からよみ、他のファイル(新規)へ書き込む。
2)nバイト分をログファイルから削除する。
上記を繰り返す。

上記のプログラムは、シェルでは作成できません。
C言語,perl,ruby等なら可能です。
但し、改行のところで、分割はできませんので、改行単位で分けたい場合は、その為の補正作業が必要となります。
    • good
    • 0
この回答へのお礼

他のファイルシステムを使うか、プログラムを作るしかないのですね~どちかかの方法で対応を考えようと思います。ありがとうございます。

お礼日時:2005/08/23 21:23

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