Ho una data come 12/12/2013 14:32
Voglio convertirla solo in 12/12/2013
. La stringa può essere 1/1/2013 12:32
o 1/10/2013 23:41
Mi serve solo la parte della data.Stampa solo del primo campo di una stringa
13
A
risposta
34
È possibile farlo facilmente con una varietà di strumenti Unix:
$ cut -d' ' -f1 <<< "12/12/2013 14:32"
12/12/2013
$ awk '{print $1}' <<< "12/12/2013 14:32"
12/12/2013
$ sed 's/ .*//' <<< "12/12/2013 14:32"
12/12/2013
$ grep -o "^\S\+" <<< "12/12/2013 14:32"
12/12/2013
$ perl -lane 'print $F[0]' <<< "12/12/2013 14:32"
12/12/2013
1
Se la stringa data è memorizzato in una variabile, quindi non è necessario eseguire un programma esterno come cut
, awk
o sed
, perché le moderne shell come bash
possono eseguire direttamente string manipulation che è più efficiente.
Ad esempio, in bash:
$ s="1/10/2013 23:41"
$ echo "${s% *}"
1/10/2013
3
$ echo "12/12/2013 14:32" | awk '{print $1}'
12/12/2013
print $1
-> di stampare prima colonna della stringa fornita. 12/12/2013
print $2
-> Stampa la seconda colonna della stringa fornita. 14:32
Per impostazione predefinita, awk considera lo spazio come delimitatore.