プレーンテキストファイルのUnix Epoch(ミリ秒)を通常の日付に変更したいと思います。私はbash、sed、awk、perlのソリューションを受け入れます。
サンプルファイル1(13桁のみ):
Foo bar 1397497040418 foo 1526 bar foobar, bar 1397497060518.
Bar, 1357407040418 foo 10 foobar.
私は次のような出力が欲しい。
Foo bar 2014-04-14 19:37:20 foo 1526 bar foobar, bar 2014-04-14 19:37:40.
Bar, 2013-01-05 18:30:40 foo 10 foobar.
私の試みが失敗しました:
sed -E "s/([0-9]{10})/date -d @\1/;e" file1
どんなアイデアがありますか?
ありがとうございます。
ベストアンサー1
入力ファイルを使用してください。
perl -MTime::Piece -pe '
s{ \b (\d{10}) \d{3}\b }
{ localtime($1)->strftime("%F %T") }xge
' file1
Foo bar 2014-04-14 13:37:20 foo 1526 bar foobar, bar 2014-04-14 13:37:40.
Bar, 2013-01-05 12:30:40 foo 10 foobar.