2021-08-16
Linux, Mac, ShellScript
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 暇