• ベストアンサー

ファイル内の日付から1週間前までの行を消す方法

ファイル内に、 Thu Jul 17 10:51:46 JST 2003 : bbb Thu Jul 24 13:21:40 JST 2003 : c Thu Jul 24 14:51:46 JST 2003 : d のようなデータが保存されます。 このファイル内のデータ(行)を、起動した日の1週間前 までのデータを削除したいのです。 (このデータの場合、1行目のbbbが消される) Bシェルでプログラミングしたいのですが、どのようにすればよいのでしょうか? 教えてください。

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

  • ベストアンサー
  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.2

> awk,perlを使ったことないのですが、それらを使うと簡単にできるのでしょうか? Awkの仕様は簡素です。Perlは現在では、Awkに比べ物にならないぐらい仕様が膨らんでいます。Awkをちょっとやってみて、事足りないと思ったらPerlに乗り換えても良いと思います。 AwkやPerは、行処理や列処理、パターン処理、加工などテキスト処理が得意です。 もしC言語を少しでもかじったことがあったら、Awkは、入りやすいです。 Perlは柔軟で、記述方法がパラエティに富んでいる分、なれないとなかなか・・という感じがします。簡単なコーディングならそんなでもないですが・・。 Awkを選択するかPerlを選択するかは、どちらも ちょっとかじってみて決めても良いと個人的には思います。ただし、Perlは、しっかりすべての仕様を把握しようと勉強すると、Awkに比べてかなり大変です。 とりあえず、簡単か?難しいか?という回答になりませんでしたが、一度、お試しあれ!

momo63
質問者

お礼

C言語は得意です。awkからやってみます。ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

Bシェルって何だ?って感じの私ですので、 間違ったことを書いたらご容赦を・・。 提案レベルのお話ということで・・。 読み物程度に見ていただいても結構です。 Bシェルのみではできるかどうか考えてみると。 今回必要な処理の要は、 (1)ファイル入出力 (2)日付処理(取得と比較) ですよね? (1)の場合は、Bシェルにそんな機能は無いように思えます。(間違っていたらすいません) (2)も同様です。 では、外部コマンドを使ってよいのかどうかという ことになりますが、”私なら”使うでしょう。 理由は、機能がないから。それだけのことです。 (中略) ということで、いろいろとやり方を検討していくと、 Bシェル以外のスクリプト言語の力をかりたほうが 作成にかかる労力やメンテナンス的に楽のような気がします。 そうすると、どんな言語か・・。 awkかPerlあたりが良いのではないでしょうか? こちらのほうがBシェルよりもはるかに柔軟に対処できるように思えます。 いかがでしょうか? awkやPerlを使わずに・・・という話になると、 この提案は、却下ということになりますが・・。

momo63
質問者

お礼

回答ありがとうございました! awkやPerlはBシェルに組み込むことは可能ですよね? ならばOKなのですが。。

momo63
質問者

補足

awk,perlを使ったことないのですが、それらを使うと簡単にできるのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A