ls と awk で指定した日時のファイルを表示(出力)する
特定の日時のファイルのみ、lsで一覧を返したい。
いくつかの方法がありそうだが、lsコマンドとawkコマンドを合わせて期待する結果が得られた。
まずはlsコマンドで日時のフォーマットを今回は、"+%d %m %Y %H:%M:%S"で指定し出力
user@mypc:~$ ls -ltr --time-style="+%d %m %Y %H:%M:%S" /etc/*.conf
$1 $2 $3 $4 $5 $6 $7 $8 $9 $10
-rw-r--r-- 1 root root 280 6月 06 2014 15:23:50 /etc/fuse.conf
-rw-r--r-- 1 root root 604 9月 09 2018 07:14:19 /etc/deluser.conf
-rw-r--r-- 1 root root 1260 12月 12 2018 17:51:14 /etc/ucf.conf
-rw-r--r-- 1 root root 533 1月 01 2019 19:11:39 /etc/logrotate.conf
-rw-r--r-- 1 root root 14867 2月 02 2019 09:10:30 /etc/ltrace.conf
-rw-r--r-- 1 root root 2969 8月 08 2019 19:51:13 /etc/debconf.conf
-rw-r--r-- 1 root root 5060 8月 08 2019 21:36:14 /etc/hdparm.conf
-rw-r--r-- 1 root root 642 9月 09 2019 11:17:57 /etc/xattr.conf
-rw-r--r-- 1 root root 10593 11月 11 2019 05:56:11 /etc/sensors3.conf
-rw-r--r-- 1 root root 92 12月 12 2019 23:39:21 /etc/host.conf
-rw-r--r-- 1 root root 552 12月 12 2019 01:41:40 /etc/pam.conf
-rw-r--r-- 1 root root 2584 2月 02 2020 20:52:50 /etc/gai.conf
次に、awkコマンドで指定した日時のファイルのみを出力
user@mypc:~$ ls -ltr --time-style="+%b %m %Y %H:%M:%S" /etc/*.conf | awk '$6 == "12月" && $7 >= 12 && $7 <= 12 && $8 == "2019" && $9 >= "23:00:00" {print $10" "$8"年"$6$$7"日 "$9}'
/etc/host.conf 2019年12月日 23:39:21
※$は、lsコマンドの結果1項目ごと
Owndは、コード(プログラミング)系には本当に向いていない・・・マークダウンでコードブロックとか簡単に書ければよいのだがこの点は相変わらずで残念
あと画像ストレージサイズがもう少し多いとうれしい。その他の点はとてもよいんだけれど..
0コメント