日付だけ入ってるファイルがあるとき、
takk@deb8:~$ cat a 20190102 20110102 20150102 20170219 20130505 takk@deb8:~$
date -fコマンドで日付の入ったファイルを指定すると、このように表示されます。
takk@deb8:~$ date -f a 2019年 1月 2日 水曜日 00:00:00 JST 2011年 1月 2日 日曜日 00:00:00 JST 2015年 1月 2日 金曜日 00:00:00 JST 2017年 2月 19日 日曜日 00:00:00 JST 2013年 5月 5日 日曜日 00:00:00 JST takk@deb8:~$
便利です。
。。。はあ。で、結局何に使うのでしょうか?
日付書式の統一に使えます。
このような書式がばらばらの日付の一覧があるとき、
takk@deb8:~$ cat b 1/2/2019 2011/01/02 2015-1-2 Feb. 19, 2017 5 May 2013 takk@deb8:~$
date -fコマンドで一発変換して綺麗に書式が揃います。
takk@deb8:~$ date -f b 2019年 1月 2日 水曜日 00:00:00 JST 2011年 1月 2日 日曜日 00:00:00 JST 2015年 1月 2日 金曜日 00:00:00 JST 2017年 2月 19日 日曜日 00:00:00 JST 2013年 5月 5日 日曜日 00:00:00 JST takk@deb8:~$
dateコマンドの他オプションと組み合わせると、
takk@deb8:~$ date +%F -f b 2019-01-02 2011-01-02 2015-01-02 2017-02-19 2013-05-05 takk@deb8:~$
このように他の書式にもできます。
では、複数フィールドのデータで使ってみましょう。
takk@deb8:~$ cat data 1 1/2/2019 retrials 2 2011/01/02 directer 3 2015-1-2 conservatives 4 Feb. 19, 2017 alliterations 5 5 May 2013 ranches takk@deb8:~$
上のようなデータが格納されているファイルdataの、2列目の日付の書式を統一してみます。
以下のように、cutして、pasteして、列を並び替えすると、
takk@deb8:~$ cut -f2 data >a takk@deb8:~$ date +%F -f a | paste data - data | cut -f1,4,7 1 2019-01-02 retrials 2 2011-01-02 directer 3 2015-01-02 conservatives 4 2017-02-19 alliterations 5 2013-05-05 ranches takk@deb8:~$
簡単操作で、日付の書式が統一できました。
コメント