`stat`出力形式:日付フィールドを切り捨てる

`stat`出力形式:日付フィールドを切り捨てる

stat1つの形式(少なくともLinuxのbashから取得した形式)では、形式修飾子を使用できます。たとえば、%010sサイズフィールドを10文字以上に設定し、左側をゼロで埋めます(ただし、これはRecordedのどこかで機能しますか)。 ?)

フィールドの長さを制限する同じトリックはありますか? %xyz形式から秒の小数部を削除したいと思います。または、出力を後処理するためにsed / awkを使用する必要がありますか?

ベストアンサー1

GNUツールを使用して、

date -r file +'%F %T %z'

これは、指定されたファイルの最後に変更されたタイムスタンプを取得し(1秒未満の解像度なし)、それを使用してdate生成されたファイルと同じ形式で再フォーマットしますstat -c %y file

例:

$ stat -c '%y' file
2021-03-17 08:53:39.540802643 +0100
$ date -r file +'%F %T %z'
2021-03-17 08:53:39 +0100

書式設定printfには-like型を直接使用できますが、中間文字列を変更することはできません。%y

$ stat -c '%.19y' file
2021-03-17 08:53:39

これにより、19文字以降の文字列が切り捨てられ、1秒未満のデータが削除されますが、タイムゾーン情報も無視されます。

おすすめ記事