各ファイルのフルパスを含むファイルのリストを返すスクリプトがあります。たとえば - root/folder/file@1610565763436
。だから出力は次のようになります
/root/folder/file@1610565763436
/root/folder/file@1610568241000
/root/folder/file@1610597041000
/root/folder/file@1610625841000
/root/folder/file@1610654641000
/root/folder/file@1610683441000
/root/folder/file@1610712242000
/root/folder/file@1610741041000
/root/folder/file@1610769841000
/root/folder/file@1610798641000
/root/folder/file@1610827441000
/root/folder/file@1610856241000
/root/folder/file@1610885041000
/root/folder/file@1610913841000
人間が読めるタイムスタンプだけが出力されるように出力形式を指定したいと思います。タイムスタンプを取得しようとしましたが、cut -d "@" -f 2
xargsにパイプしてdateコマンドを実行しても機能しませんでした。つまり/bin/bash scriptToGetFiles | cut -d "@" -f 2 | xargs date -d {}
。
FWIW、上記のコマンドを実行するとxargs -t
エラーが返されます。
date -d @ 1610565763436 1610568241000 1610597041000 1610625841000 1610654641000 1610683441000 1610712242000 1610741041000 1610769841000 1610798641000
date: extra operand ‘1610568241000’
どんな提案やアドバイスにも感謝します。
ベストアンサー1
GNU日付を使用してください。
$ echo /root/folder/file@1610565763436 | cut -d@ -f2 | xargs -I '{}' echo {} / 1000 | bc | xargs -I '{}' date --date=@{}
Wed Jan 13 20:22:43 CET 2021
FreeBSDから:
$ echo /root/folder/file@1610565763436 | cut -d@ -f2 | xargs -I '{}' echo {} / 1000 | bc | xargs date -r
Wed Jan 13 20:22:43 CET 2021