投稿

10月, 2016の投稿を表示しています

awk - 時刻 文字列 比較

時刻の大小の比較のみを扱う場合は、わざわざUnixタイム(Epoch Time)に変換する必要はなく、awkの文字列比較を使えば簡単(´ω` ) 大したことは書いてませんが、あれこれ無駄に考える時間が減ってくれれば幸いです。仕事も必要なだけやって後は何もせずに呆けましょう。 awkの文字列の大小比較は先頭(左)から1文字ずつ比較され、対象が数字の場合はそのままその数字の大小となる。 例) "123" と "92" は "92" が大きい よって、桁数や書式を揃えれば時刻の大小比較を行うことができる。 例) YYYY/MM/DD hh:mm:ssの形式の日付時刻の比較 (shell scriptで使う場合。読み込むテキストは日付と時刻がフィールドセパレータ(空白)で分かれていると仮定) DATE1="2015/01/23 05:00" DATE2="2015/01/24 04:59" awk ' {   date = $1" "$2   if ( date >= "'"${DATE1}"'" && date <= "'"${DATE2}"'" ) {     print $0   } }' foobar.txt > hogehoge.txt 結果は、foobar.txtの行に書かれている日付で、DATE1とDATE2の間の期間にあるものが、hogehoge.txtにリダイレクトされます。