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は、コード(プログラミング)系には本当に向いていない・・・マークダウンでコードブロックとか簡単に書ければよいのだがこの点は相変わらずで残念

あと画像ストレージサイズがもう少し多いとうれしい。その他の点はとてもよいんだけれど..



Han The World

お出かけ、食、読書、システム構築やプログラミングに関する徒然なるブログ

0コメント

  • 1000 / 1000