dateの違い: Mac vs Linux

linuxの勉強をして, 同じcodeをMacでも試すか, と思ったらやはりちょいちょい違う.

気づいたのは,
http://qiita.com/keitas0318/items/7df5014a8c00c64ceda3
のwebcam写真の自動DLをやってみようというもの.

>
ちなみに, wgetは,こちら https://wayohoo.com/unix/how-to-install-wget-to-mac.html を参考にinstallしてみるもまだ使えず. なぜだろ.
>
と思ったら,
brew install wgetであっさりいけた. @kabaoh パイセンazms!!

で.

dateも-rでfileの時刻を取ることができず困惑.
すると, この方
http://tatsuno-system.co.jp/2016/06/27/mac%E3%81%A7date%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%8C%E9%81%95%E3%81%86%E4%BB%B6%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/
いわく, やはり違うらしい.

>
Mac: BSD UNIXベース
raspi: GNU linux

参考にinstallしたらgdateで使えた.
どっちが良いかはわからんので, とりあえずaliasの変更はしていない.
Macデフォルトのdateの普及率とかを調べて微妙だったら変えますかね.

bashが上手くいかない

これで良いかと記事を終わりにしようと思ったら, webcamget.shがうまく動いていない
/var/mail/ksumiyaをみたら, gdateなんてないよと言われてた.
えー….

とりあえず, 現時刻で代用するかと

#!/bin/sh
cd /Volumes/T/Dropbox/linux_test/webcam
curl -O https://pixelcaster.com/yosemite/webcams/turtleback.jpg
mv turtleback.jpg `date +%Y%m%d_%H%M%S_ElCapitan.jpg`
sleep 30
curl -O https://pixelcaster.com/yosemite/webcams/turtleback.jpg
mv turtleback.jpg `date +%Y%m%d_%H%M%S_ElCapitan.jpg`

にしてみた.
でもmacでcrontabすると, 実行するたび(成功しても失敗しても)にYou have mail in /var/mail/ksumiyaと出るっぽい. うざいなー.

そして, ファイルの日付を取得する方法はまだ解決しておらず…

スマートではないけど解決しました.

$ ls -lT hoge.txt | awk '$6<=9{z="0"}$6>9{z=""}{t=$9z$6$7"_"$8; gsub(":","",t); print t}'
20170327_044949

>
@kabaoh さんの案. こっちのがいいな
>

$ getfileinfo hoge.txt | awk -F'/|:| ' '/created:/{print $5$3$4"_"$6$7$8}'
20170425_122813

でも
http://x68000.q-e-d.net/~68user/unix/pickup?date
https://hydrocul.github.io/wiki/commands/date.html
はちょっと面白い.

awk -F' 'について

MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk '/created:/{print $0}'
created: 04/25/2017 12:28:13
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk '/created:/{print $1}'
created:
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk '/created:/{print $2}'
04/25/2017
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk '/created:/{print $3}'
12:28:13
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk '/created:/{print $4}'

MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/' '/created:/{print $0}'
created: 04/25/2017 12:28:13
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/' '/created:/{print $1}'
created: 04
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/' '/created:/{print $2}'
25
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/' '/created:/{print $3}'
2017 12:28:13
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/' '/created:/{print $4}'

MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/|:| ' '/created:/{print $0}'
created: 04/25/2017 12:28:13
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/|:| ' '/created:/{print $1}'
created
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/|:| ' '/created:/{print $2}'

MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/|:| ' '/created:/{print $3}'
04
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/|:| ' '/created:/{print $4}'
25
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/|:| ' '/created:/{print $5}'
2017
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/|:| ' '/created:/{print $6}'
12
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/|:| ' '/created:/{print $7}'
28
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/|:| ' '/created:/{print $8}'
13
MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/|:| ' '/created:/{print $9}'

MBP:linux_test ksumiya$ getfileinfo hoge.txt | awk -F'/|:| ' '/created:/{print $5$3$4"_"$6$7$8}'
20170425_122813

蛇足

for i in `seq 1 13`; do date -v+"$i"d +%Y-%m-%d" "暇; done

結果:

2017-04-25 暇
2017-04-26 暇
2017-04-27 暇
2017-04-28 暇
2017-04-29 暇
2017-04-30 暇
2017-05-01 暇
2017-05-02 暇
2017-05-03 暇
2017-05-04 暇
2017-05-05 暇
2017-05-06 暇
2017-05-07 暇
Tags:, ,