Data e ora in Linux bash [chiuso]


26

Sto cercando di visualizzare una data e ora sotto forma di

07/08/2013 16:52:13

usando il comando nello script bash:

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

quale variabile viene utilizzata per popolare un file CSV.

L'unico carattere accettato è "_" (trattino basso) o "-" tra data e ora, l'output è

08/07 / 2013_16: 52: 13

Come posso ottenere uno spazio tra data e ora? Ho provato quasi (spero) tutto.


5
” E “-” sono gli unici caratteri accettati da _who ? Cosa ti impedisce di sostituire "_" con "" nella datestringa di formato?
arte

Nulla impedisce l'inclusione di "" nel comando, semplicemente non compaiono nell'output. Prova data + "% b% e" e otterrai "4 set" (uno spazio) per oggi, non il desiderato 2. Lo sto usando in uno script e la mia soluzione è di eseguire l'operazione in 3 passaggi (I li combini effettivamente in una riga di codice ma hai l'idea).
Jim2B,

Con tutto il rispetto, in che modo questa domanda ha ottenuto 20 voti? E come è entrato nella coda di riapertura?
G-Man dice "Reinstate Monica" il

Risposte:


49
#!/bin/bash

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

Immagino che il problema sia "echeggiare" nel CSV.


3
se hai bisogno di millisecondi, usa date '+%F %T.%3N'. se hai bisogno di microsecondi, usa date '+%F %T.%6N'. se hai bisogno di nanosecondi, usa date '+%F %T.%N'. %Fè per data, dà YYYY-MM-DD, è possibile utilizzare %Dinvece per ottenere MM-DD-YYYY, %Tè per tempo , HH:MM:SS.
computingfreak

4

Questo funziona:

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

È anche possibile usare $(e )invece di `e`.


Ho dimenticato di dire che va storto dopo aver applicato awk / home / pi / SB_tool / sunnybeamtool / bin / sunnybeamtool -l | awk -v tot = $ tot -v dt = $ dt -v giorno = $ giorno -v mth = $ mth 'seguente errore 08/08/2013 23:03:03 awk: riga 1: errore di sintassi vicino o vicino:
Henry,

Risolto assegnando 2 valori separati dt e tm. awk non accetta 1 variabile con 2 valori separati da spazio
Henry,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.