重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

grep関数を使用して、以下のDATファイルより
現在の時間の近似値を求め、データーを抽出して、
さらにその時間のwhillまたはforeachループを使用して前後のデータを抽出したいのですが
方法が思いつきません。どなたか教授頂けますでしょうか。

DATファイルの内容
1,201304251700,aaa,fff
2,201304251500,avg,jjj
3,201304251300,kkk,bbb
4,201304251100,lll.rrr
5,201304250900,yyy,ccc

例えば現在時間2013年4月25日12時00分としますと
抽出されるものは4番と5番の前後の時間の値を抽出して変数に格納したいのですが。

A 回答 (2件)

まず、CGIは仕組みの名前であって、仕組み通りに動作するなら言語を問いません。


言語が違えば、「grep関数」の仕様も違います。「grep関数」なるものが無い言語もあります。

以前は、CGIにはPerlがよくつかわれていたので、CGI=Perlと勘違いされている方がいらっしゃいます。
なので、Perlでやろうとしている、として回答します。

Perlのgrep関数は次の通りです。
http://perldoc.jp/func/grep

なので、
grep { $_の日付と現在時刻を比較して「近い」なら真 } 元データのリスト
として、「近い」ものを抽出することはできます。
ですが「一番近い」ものを抽出することはできないし、「近い」ものが無い場合もあります。

grepを使わずに
順番に走査して、「一番近い」要素番号を控える
→その番号の前後を使う
とするのがよいのでは?
    • good
    • 0
この回答へのお礼

ありがとうございます。
検討してみます。

お礼日時:2013/04/25 15:47

grepでは無理です。

何らかのプログラミング言語が必要。
    • good
    • 0

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