• ベストアンサー

履歴ファイルの削除方法

履歴ファイルを filename_YYYYMMDD.dat という名前で作成しています。 今日から4日以前のファイルを削除したい場合、 どのようにすればよいのでしょうか? 削除は、シェルスクリプト(b shell)で行います。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

4日ずつしかデータをとらないのであれば、 newsyslogなどでやったほうが効率的じゃ ないですか?

papa0323
質問者

補足

newsyslogってなんですか? 上の回答とは関係ないですが この手の質問は プログラミングの方で聞いたほうがいいのでしょうか。 そちらで質問することにします。 ↓才能が感じられないけど暫定的に作ってみた。 touch test_new.dat touch test_old.dat touch test_old.dat_20060610000000 #yyyymmddhhmmss touch test_old.dat_20060610000001 touch test_old.dat_20060611000000 touch test_old.dat_20060611000001 touch test_old.dat_20060612000000 touch test_old.dat_20060612000001 touch test_old.dat_20060613000000 touch test_old.dat_20060614000000 touch test_old.dat_20060615000000 touch test_old.dat_20060615000001 touch test_old.dat_20060615000002 NEW_KEY=test_new.dat OLD_KEY=test_old.dat TODAY2=20060615 SEDAI_SU=3 ALL_UNIQ_DAYS=`ls -1 ${OLD_KEY}_* | cut -b1-21 | uniq | wc -l` DEL_UNIQ_DAYS=`expr $ALL_UNIQ_DAYS - $SEDAI_SU` ls -1 ${OLD_KEY}_* | cut -b1-21 | uniq | head -${DEL_UNIQ_DAYS} > temp_file for rm_file_name in `cat temp_file` do rm ${rm_file_name}* done ll ${OLD_KEY}_*

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

普通「filename_YYYYMMDD.dat」という名前のファイルはその日あるいは翌日に作るでしょうから, find と xargs を組合せればできそうな気がする....

papa0323
質問者

補足

YYYYMMDD部分は論理的に編集するので findだとちょっと無理なんです。 質問のスレをよそにうつすので締め切りますね