日付がエポック時間形式で保存されるファイル名simcloud-target.txtがあり、すべての日付を人間に優しい形式に変換してリストとして印刷したいです(下記のような出力なので、エポックではありませんが必要です)。によってhh:mm:00)
sec504@slingshot:~$ cat simcloud-targets.txt
1679450009
1679450014
1679450018
1679450018
1679450022
1679450023
1679450024
1679450024
1679450033
1679450043
1679450046
1679450060
1679450065
1679450071
sec504@slingshot:~$
ベストアンサー1
ファイルのUnixタイムスタンプの前にプレフィックスが付いている場合は、@
GNUをdate
使用してそれを読み取ることができます-f
。次の@
ように、各タイムスタンプにプレフィックスを追加できますsed
。
sed 's/^/@/' file
...そして、次のようにGNUから出力を使用できますdate
。
date -f <(sed 's/^/@/' file)
問題の日付スタンプとローカルタイムゾーンを考慮すると、次のようになります。
Wed Mar 22 02:53:29 CET 2023
Wed Mar 22 02:53:34 CET 2023
Wed Mar 22 02:53:38 CET 2023
Wed Mar 22 02:53:38 CET 2023
Wed Mar 22 02:53:42 CET 2023
Wed Mar 22 02:53:43 CET 2023
Wed Mar 22 02:53:44 CET 2023
Wed Mar 22 02:53:44 CET 2023
Wed Mar 22 02:53:53 CET 2023
Wed Mar 22 02:54:03 CET 2023
Wed Mar 22 02:54:06 CET 2023
Wed Mar 22 02:54:20 CET 2023
Wed Mar 22 02:54:25 CET 2023
Wed Mar 22 02:54:31 CET 2023
その後、通常どおりに希望の出力形式を設定できますdate
。ここでは、プロセス置換の代わりに通常のパイプを使用する方法も示します。
$ sed 's/^/@/' file | date -f - +'%F %T'
2023-03-22 02:53:29
2023-03-22 02:53:34
2023-03-22 02:53:38
2023-03-22 02:53:38
2023-03-22 02:53:42
2023-03-22 02:53:43
2023-03-22 02:53:44
2023-03-22 02:53:44
2023-03-22 02:53:53
2023-03-22 02:54:03
2023-03-22 02:54:06
2023-03-22 02:54:20
2023-03-22 02:54:25
2023-03-22 02:54:31
strftime
man 3 strftime
使用できるプレースホルダの形式については、ライブラリ関数()のマニュアルを参照してください。