LoginSignup
4
5

More than 5 years have passed since last update.

シェルでよく使う日付の連番をワンライナーで

Last updated at Posted at 2017-11-05

稀によくある作業で、
ファイルを連番で作ったりgrepしたりするときに必要になったので書いたもので既出ならすみません。
ネットで探してもforを使うのばっかりで使い辛かった。。。

環境は、Ubuntu 16.04 で試してます。

$ seq 0 5 | xargs -n1 -i date -d+{}days -I               
2017-11-05
2017-11-06
2017-11-07
2017-11-08
2017-11-09
2017-11-10

基準日やフォーマットを変えたいときはこれで!

seq 0 5 | xargs -n1 -i date -d2017/01/01+{}days +%Y%m%d
20170101
20170102
20170103
20170104
20170105

逆順や過去日も求められる

seq -1 -1 -5 | xargs -n1 -i date -d2017/01/01+{}days +%Y%m%d
20161231
20161230
20161229
20161228
20161227

実用編?

ファイル作ったり

seq 1 5 | xargs -n1 -i date -d2017/01/01+{}days +%Y%m%d | xargs -L1 touch

ログを日付毎にファイルに出力して、データを整理したり

seq 1 5 | xargs -n1 -i date -d2017/01/01+{}days +%Y%m%d | xargs -L1 -I@ awk '/@/{ print >> "src/@.log"}' sample.log

備考

BSD系ではオプションが違うという噂なので、
Linuxじゃない場合は少し違うかも

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5