入力ファイル
ID,Name,join_date
21433432,rds,2014_02_01
2131321,ABCDS,2014-10-20
2432745314,ASRER, 2015-01-20
2132432423,safdsad, 2015-12-30
2つのファイルを生成する必要があります。 1つは、日付列が1ヶ月未満、6ヶ月未満のレコード用です。
出力ファイル1は1ヶ月未満です。
ID,name,join_date
2432745314,ASRER, 2015-01-20
2132432423,safdsad, 2015-12-30
出力ファイル2が6ヶ月未満です。
2131321,ABCDS,2014-10-20
コマンドを使用しましたがawk
機能しませんでした。
ベストアンサー1
これは始めるのに役立ちます。時間関数を実装するにはGNU awkが必要です。
gawk -F, '
function totime(ymd) {gsub(/[-_]/," ",ymd); return mktime(ymd " 0 0 0")}
BEGIN {now = systime(); m1 = now - 86400 * 30; m6 = now - 86400 * 180}
FNR == 1 {next}
{t = totime($3)}
t > m1 {print "m1", $0; next}
t > m6 {print "m6", $0}
' file
m6 2131321,ABCDS,2014-10-20
m1 2432745314,ASRER, 2015-01-20
m1 2132432423,safdsad, 2015-12-30
正確に1ヶ月6ヶ月ではなく、30日180日、夏時間の切り替えによる1時間プラスマイナス1時間