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にリダイレクトされます。
例)
"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にリダイレクトされます。