Como dijiste, BSD date
no admite %N
. Entonces, la solución más sencilla es descargar date
de GNU e instalarlo en ~/bin
o /usr/local/bin
y llamar a eso cuando necesite usar %N
.
Sin embargo, no recomendaría reemplazar la versión que viene con su Mac con la nueva. La mayoría de estos programas coreutil están escritos de tal manera que su salida puede ser entendida por otros programas , no necesariamente humanos, por lo que la fiabilidad en la salida es una necesidad. Puede haber varios scripts en tu mac que analizan la salida de BSD's date
y cualquier cambio posible introducido al reemplazar con GNU puede o no romper las cosas.
La forma más sencilla de hacer esto de manera segura en una Mac es usar homebrew
e instalar coreutils.
brew info coreutils
coreutils 8.16
http://www.gnu.org/software/coreutils
...
==> Caveats
All commands have been installed with the prefix 'g'.
El equivalente de GNU se llamará gdate
y se encuentra en /usr/local/Cellar/coreutils/8.16/bin/
. También puede establecer un alias en su .bashrc
o su equivalente como
alias date='gdate'