- ベストアンサー
履歴ファイルの削除方法
履歴ファイルを filename_YYYYMMDD.dat という名前で作成しています。 今日から4日以前のファイルを削除したい場合、 どのようにすればよいのでしょうか? 削除は、シェルスクリプト(b shell)で行います。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
4日ずつしかデータをとらないのであれば、 newsyslogなどでやったほうが効率的じゃ ないですか?
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.2
普通「filename_YYYYMMDD.dat」という名前のファイルはその日あるいは翌日に作るでしょうから, find と xargs を組合せればできそうな気がする....
質問者
補足
YYYYMMDD部分は論理的に編集するので findだとちょっと無理なんです。 質問のスレをよそにうつすので締め切りますね
補足
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}_*