QA@IT

日付表示の変更について

22271 PV

Linux各サーバのログイン履歴を1ファイルにマージするため、以下で抽出し整形することを考えています。
/usr/bin/utmpdump /var/log/wtmp >logontm.log

最終的には他OSのサーバと統一するため以下の形式にしたいです。
ログオン/ログオフ,yyyy/mm/dd hh:mm:ss, 接続先ホスト名, ユーザー名, 接続元ドメイン/ホスト名, 使用端末名, NIC IP

ただ、日付の表示形式が元々wtmpから日付の形式を変えられないため、日付の表示形式をyyyy/mm/dd hh:mm:ssと変更する方法について
教えてください。

【変更前】
30092,Thu Apr 09 15:23:45 2015 JST,ホスト名, ユーザ名,XXX,
15065,Fri Apr 10 09:01:24 2015 JST,ホスト名,ユーザ名,XXX,
15065,Fri Apr 10 09:04:02 2015 JST,ホスト名,ユーザ名,XXX,

【変更後】
30092,2015/04/09 15:23:45,ホスト名, ユーザ名,XXX,
15065,2015/04/10 09:01:24,ホスト名,ユーザ名,XXX,
15065,2015/04/10 09:04:02,ホスト名,ユーザ名,XXX,

回答

flied_onion様

回答ありがとうございます。頂いたやり方で実施できそうです。ありがとうがとうございました

編集 履歴 (0)

最終的なフォーマットはお好みで変更してもらうとして、
たとえば以下の様にすれば、2列目を変更することができます。

$ cat logontm.log | ruby -n -e 'require "time"; x=$_.split(","); x[1]=Time.parse(x[1]); puts x.join(",")'
30092,2015-04-09 15:23:45 +0900,ホスト名, ユーザ名,XXX,
15065,2015-04-10 09:01:24 +0900,ホスト名,ユーザ名,XXX,
15065,2015-04-10 09:04:02 +0900,ホスト名,ユーザ名,XXX,
編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。