Data i godzina w Linux Bash [zamknięte]

26

Próbuję wyświetlić datę i godzinę w formie

07/08/2013 16:52:13

za pomocą polecenia w skrypcie bash:

dt=`date '+%d/%m/%Y_%H:%M:%S'`

która zmienna jest używana do wypełnienia pliku CSV.

Jedynym akceptowanym znakiem jest „_” (podkreślenie) lub „-” pomiędzy datą a godziną, wyjście to

07/08 / 2013_16: 52: 13

Jak mogę uzyskać odstęp między datą a godziną? Próbowałem prawie (mam nadzieję) wszystkiego.

Henz
źródło
5
” I „-” to jedyne znaki akceptowane przez _who ? Co powstrzymuje cię przed zamianą „_” na „” w dateciągu formatu?
manatwork
Nic nie stoi na przeszkodzie, aby wstawić „” do polecenia, po prostu nie pojawiają się na wyjściu. Wypróbuj date + „% b% e”, a na dzisiaj otrzymasz „4 września” (jedno miejsce), a nie żądane 2. Używam go w skrypcie, a moim rozwiązaniem jest wykonanie operacji w 3 krokach (I faktycznie łączą je w jeden wiersz kodu, ale masz pomysł).
Jim2B
Z całym szacunkiem, jak to pytanie uzyskało 20 głosów? I jak dostało się do kolejki ponownego otwarcia?
G-Man mówi „Reinstate Monica”

Odpowiedzi:

49
#!/bin/bash

dt=$(date '+%d/%m/%Y %H:%M:%S');
echo "$dt"

Zgadnij, że problemem jest „echo” w pliku CSV.

użytkownik1293137
źródło
3
jeśli potrzebujesz milisekund, użyj date '+%F %T.%3N'. jeśli potrzebujesz mikrosekund, użyj date '+%F %T.%6N'. jeśli potrzebujesz nanosekund, użyj date '+%F %T.%N'. %Fjest na datę, daje YYYY-MM-DD, można %Dzamiast tego użyć, aby uzyskać MM-DD-YYYY, %Tjest na czas HH:MM:SS,.
computingfreak
4

To działa:

#!/bin/bash
dt=`date '+%d/%m/%Y %H:%M:%S'`
echo "$dt"

Możliwe jest również użycie $(i )zamiast `i`.

Alexander
źródło
Zapomniałem wspomnieć, że poszło nie tak po zastosowaniu awk / home / pi / SB_tool / sunnybeamtool / bin / sunnybeamtool -l | awk -v tot = $ tot -v dt = $ dt -v dzień = $ dzień -v mth = $ mth 'następujący błąd 08/08/2013 23:03:03 awk: linia 1: błąd składniowy w pobliżu lub w pobliżu:
Henry
Rozwiązany przez przypisanie 2 oddzielnych wartości dt i tm. awk nie akceptuje 1 zmiennej z 2 wartościami oddzielonymi spacją
Henry