it-swarm-eu.dev

Zobrazte časové razítko v dd / mm / rrrr_hh: mm: ss: ms v Unixu nebo Linuxu

Potřebuji zobrazit datum a čas v požadovaném formátu v Unixu/Linuxu. Můj požadovaný formát je: dd/mm/rrrr hh: mm: ss: ms v Unixu nebo Linuxu. Přiblížil jsem se pomocí následujícího příkazu:

echo $(date +%x_%r)

Vrací se:

08/20/2012_02:26:14 PM

Nějaké návrhy?

26
Hank
date +%x_%H:%M:%S:%N

pokud potřebujete vytisknout pouze dvě první čísla jako ms:

date +%x_%H:%M:%S:%N | sed 's/\(:[0-9][0-9]\)[0-9]*$/\1/'

uložit do var:

VAR=$(date +%x_%H:%M:%S:%N | sed 's/\(:[0-9][0-9]\)[0-9]*$/\1/')
27
rush

Pokud chcete místo milisekundy přesnost milisekund, můžete místo %3N Použít %N:

$ date +'%d/%m/%Y %H:%M:%S:%3N'
12/04/2014 18:36:20:659

nebo s požadovaným použitím funkce $(…):

$ echo "$(date +'%d/%m/%Y %H:%M:%S:%3N')"
12/04/2014 18:36:20:659

Vezměte však na vědomí, že %N Nemusí být implementován v závislosti na cílovém systému nebo verzi bash. Testováno na vestavěném systému "GNU bash, verze 4.2.37 (2) -release (arm-buildroot-linux-gnueabi)" nebyl žádný %N (Ani %3N):

date +"%F %T,%N"
2014-01-08 16:44:47,%N
24
Joe

datum muže

date +"%d/%m/%Y_%H:%M:%S:%N"

Užitečnější čtení:
Jak formátovat datum pro zobrazení nebo použití ve skriptu Shell

5
Nifle

Si můžete vyzkoušet:

echo `date +"%Y_%m_%d %H:%M:%S,"``date +%N/1000000|bc -l|grep -Eo "^([0-9]{0,3})"`

Z nějakého důvodu je `` 'vynecháno, takže to dejte za ozvěnu a na konec, nebo jednoduše:

date +"[%Y_%m_%d %H:%M:%S,%3N]"
0
user2538887

Něco takového:

date +'%d/%m/%Y_%H:%M:%S:%N'

Použité %N na nanosekundy (000000000..999999999), protože jsem teď nenašel milisekundy

0
Johan