Fri 12 Feb 18:27:34 +08 2021
日付形式を例から単純に変更できますかDD-MM-YYYY
?
last
特に、コマンドで日付形式を変更するには
答え1
これを直接行うことはできません。ドキュメント(man last
)を読むと、この--time-format
オプションを使用することをお勧めしますが、いくつかの選択肢しか提供されず、カスタマイズ可能な形式は提供されません。デフォルトの出力形式は次のとおりです。
last
roaima pts/0 10.1.1.16 Sat Feb 13 16:21 still logged in
roaima pts/1 :pts/0:S.0 Mon Feb 8 13:42 - 22:47 (09:05)
roaima pts/0 10.1.1.16 Mon Feb 8 13:42 - 22:47 (09:05)
roaima pts/2 10.1.1.16 Fri Jan 15 13:57 - 02:04 (12:06)
reboot system boot 4.19.0-13-amd64 Tue Jan 12 01:19 still running
wtmp begins Fri Jan 8 10:10:13 2021
幸いなことに、オプション(iso
)の1つは比較的編集しやすい形式で日付を表示します。
last --time-format iso
roaima pts/0 10.1.1.16 2021-02-13T16:21:47+00:00 still logged in
roaima pts/1 :pts/0:S.0 2021-02-08T13:42:08+00:00 - 2021-02-08T22:47:14+00:00 (09:05)
roaima pts/0 10.1.1.16 2021-02-08T13:42:07+00:00 - 2021-02-08T22:47:14+00:00 (09:05)
roaima pts/3 10.1.1.16 2021-01-15T13:57:27+00:00 - 2021-01-16T02:04:26+00:00 (12:06)
reboot system boot 4.19.0-13-amd64 2021-01-12T01:19:18+00:00 still running
wtmp begins 2021-01-08T10:10:13+00:00
ISO形式の日付スタンプから時間部分を削除すると、次の結果が得られます。
last --time-format iso | sed -E 's/T[[:digit:]:+]{14}//g'
roaima pts/0 10.1.1.16 2021-02-13 still logged in
roaima pts/1 :pts/0:S.0 2021-02-08 - 2021-02-08 (09:05)
roaima pts/0 10.1.1.16 2021-02-08 - 2021-02-08 (09:05)
roaima pts/3 10.1.1.16 2021-01-15 - 2021-01-16 (12:06)
reboot system boot 4.19.0-13-amd64 2021-01-12 still running
wtmp begins 2021-01-08
日付形式が本当に必要な場合は、dd-mm-yyyy
日、月、年を解析して順番に再組み立てする必要があるため、より複雑になります。
last --time-format iso | sed -E 's/([[:digit:]]{4})-([[:digit:]]{2})-([[:digit:]]{2})T[[:digit:]:+]{14}/\3-\2-\1/g'
roaima pts/0 10.1.1.16 13-02-2021 still logged in
roaima pts/1 :pts/0:S.0 08-02-2021 - 08-02-2021 (09:05)
roaima pts/0 10.1.1.16 08-02-2021 - 08-02-2021 (09:05)
roaima pts/3 10.1.1.16 15-01-2021 - 16-01-2021 (12:06)
reboot system boot 4.19.0-13-amd64 12-01-2021 still running
wtmp begins 08-01-2021
(対応するフラグまたはそれに対応するフラグがsed
ない場合は、それを削除し、対応する4文字の各インスタンスの前にバックスラッシュを追加します。REは読みにくくなります。)-E
-r
(
)
{
}