• ベストアンサー

ファイルのパージについて

ちょっと教えてほしいんですが・・・ HP-UXでファイルの中に書いているデータを0バイトにしたいのです。 例えば、 testっていうログファイルに100行のデータが書かれている場合、そのtestというログファイルを削除せずに、中身だけを消したいのです。 どなたか、いいやり方を知っている方、教えてください。

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

  • ベストアンサー
  • ysk6406
  • ベストアンサー率40% (237/589)
回答No.2

単純には  cp /dev/null ファイル名   とか  > ファイル名 を実行すれば、ファイルを消さずに中身を0バイトにできますが、何かの プログラムがそのファイルを書き込み用にオープンしている場合は、これを やると、その後の書き込みデータがおかしくなる可能性があります。 その場合は、そのプログラム自身で ftruncate 関数などを使って中身を消す 必要があります。

yukkinn
質問者

お礼

ありがとうございます。 よくよく考えたら単純なことだったんですね。 ファイルは単なるログの出力先なので、これで大丈夫だと思います。 しかも、パージするときは、ログを出力するアプリケーションは動作していないので。。。 ありがとうございました。

その他の回答 (1)

  • senna13
  • ベストアンサー率28% (67/237)
回答No.1

test > /dev/null ってのは、どうでしょう?? ちなみにSun-OSですけど・・・・・ 古いすぎ・・。

yukkinn
質問者

補足

すいません。 もうちょっと詳しく教えてもらえませんか?

関連するQ&A

  • ファイルの3行目までを出力したい

    Perl初心者です。 test.txtというファイルがあって、その中の1行目から3行目までを 出力したい場合はどうしたらいいでしょうか? open(FILE,"test.txt") || die "Open Error.\n"; @data = <FILE>; close(FILE); foreach (@data) { print $_; } これだと、ファイルの中身が全て出力されてしまいます。

    • ベストアンサー
    • Perl
  • pythonでファイルのコメント行を削除したい

    pythonを勉強し始めたばかりなのですが、ちょっと困っています。 pythonでデータファイルのコメント行を削除して、データだけ後の計算に回したいのですが、コメント行を削除する方法がわからなくて困っています。 データファイルは以下のようになっています。 #test1 #test2 test2 #test3 teset3 test3 0, 10 1, 2 2, 9 3, 3 4, 4 5, 7 コメント行は頭に#が付くようになっていますが、この例のように3行ではなく、他の行数になった場合でも対処できるようにしたいです。

  • 【csh】ファイルの中の値を配列変数として取得するには?

    環境はHP-UX11です。 ファイルを読み込ませて、そのファイルの中身の一行を配列のひとつとして変数に代入するにはどうしたらよいのでしょうか? 例えばファイルの中身が $DIR1/$FILE1 $DIR1/$FILE2 $DIR2/$FILE3 だったとして、この3行を配列として読み込ませたいのですが、cshで可能なんでしょうか? よろしくお願いします。

  • ファイルから指定行数分だけ読み込む

    あるファイルに下記のようにタブで区切られた、ログのようなファイルがあった場合。 aaa test 1 bbb test 2 ccc test 3   ・   ・   ・ このログの1行目~30行目まで1行ずつGETしたい場合や、30行目~60行目までGETしたい場合はどのようにしたらいいのでしょうか?? 30行ずつ配列にいれこんだあとに、表示させようと思ったのですが、手間がかかりそうなので。。 grepでもこのように行数を指定できるやり方があればいいのですが。。。

    • ベストアンサー
    • PHP
  • スクリプトについて教えてください。

    教えてください。お願いします。 ひとつのファイルの中身を読み、ある一定の文字列が出て来てから、また決まった文字列が出てくるまでを別のファイルに書き出す方法(スクリプトの書き方)を教えてください。 hp-uxの中にあるrunacctというスクリプトによってできる月次ファイルfiscalというのがあってそのファイルの中には3つのデータが書き出されます。 どこからどこまでがひとつのデータという事はわかります。 これを一つずつ、3つのファイルに書き出すスクリプト(手動でよいので)をつくりたいのです。 hp-uxについてもスクリプトについても全くというほど知識がないので、 ヒントでも良いので下さい。お願いします。

  • 1行だけ削除。

    log.logというログファイルの中のデータから、 NAME=hoge&GROUP=hogehoge というような1行だけを削除する場合はどのようにしたらいいのでしょうか?

    • 締切済み
    • CGI
  • 転送の時おかしなファイルが登場するんですが・・・

    FTPでHP転送する時にThumbs.dbと言うファイルがユーザー元ディレクトリに急に出てきてhtmlファイルと一緒に転送してしまいます。 このファイルはhtmファイルを入れているフォルダを開けてもないのにFTP画面になるとどこからか出てくるんですが・・・ バイト数は100万ぐらいあります。フォルダの中にいくつかフォルダを入れてるんですがそれそれ1つずつできるみたいなんですがFTP画面で削除してもまたすぐに新しいもの(バイト数は変わる)が出来てしまうようです。画像のみのフォルダの中にも出来ます。基本的に新しいファイル(画像)を追加したりファイルを更新したりすると出来るようなんですが。ほかっとくとどんどん大きくなってしまいます。中味を開いてみてみたらすごい文字化け?が大量に表示されてました。文字コードを変換しても一緒です。 もしやウィルス?と思ったのですが一体どこに聞いていいのか分からずとりあえずPCのメーカーに問い合わせたところ「はっきり分かりませんがHPのログが残ってると思われます」との返事。 その後サーチエンジンで検索してみるとなぜかH系のサイトばかり出てきて・・・ HP作成は前はwin付属のフロントページでしたが今h歩^ムページビルダーですがどっちで作っても同じです。 ログだとしてもなぜ私だけが残ってしまうのかわかりませんし、HPスペースの容量も限られてるのでいちいち削除しなければならなくて困ってます。 何か心当たりの方がございましたらよろしくお願いします。

  • ログファイルの中から1行だけ削除。

    cgiを使用してファイルの削除を行いたいのですが、***.htmlなどファイル単位で指定するものは できたのですが、logファイルの中にある、任意の1行だけを削除したい場合はどうしたらいいのでしょうか?

    • ベストアンサー
    • CGI
  • ファイルの差分検出シェル教えてください(bsh)

    ファイル1(f1)とファイル2(f2)で値が一致しないときのみ その行番号を得る方法を教えてください。 2つのファイルの行数は同じです。 例) f1の中身 100 101 902 103 104 f2の中身 100 101 102 103 104 以上の2つのファイルより3行目が不一致のため "3"を得たいです。 ちなみに私が安易に考えたものを記します。 sdiff f1 f2 | grep -n "|" | awk '{print $1}' これでは、"|"のときしか成功しません。(当たり前ですが) 環境はHP-UXでbshです。 awkは基本的なことしか知りません。 詳しいかたよろしくお願いいたします。

  • マルチバイトファイル名のファイルが消せない

    ホストはHP-UXでコードはEUCの設定になっています。 誤って、SJISファイル名のファイルをホストに作成してしまったため、ファイルを消そうと思います。 testというディレクトリにEUCファイル名・SJISファイル名のファイルが混在した状態で、rm -rf test/* (シェルは/bin/sh)を実行したところ、見事にSJISファイル名のファイルが削除できませんでした。 シェルをcshに変更したところ、今度は削除できました。 *で削除しているので全て削除可能なのでは、と思うのですが、削除できない理由は何なのでしょうか。 ファイル削除手段の方法はとりあえず分かりました(シェルを変更して削除)ので、向学のため理由が知りたいです。