Pregunta Imprimir solo el primer campo en una cadena


Tengo una cita como 12/12/2013 14:32 Quiero convertirlo solo 12/12/2013. La cadena puede ser 1/1/2013 12:32 o 1/10/2013 23:41 Solo necesito la parte de la fecha.


19
2018-02-22 12:44


origen


Respuestas:


Puede hacerlo fácilmente con una variedad de herramientas de 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

42
2018-02-22 12:48



$ echo "12/12/2013 14:32" | awk '{print $1}'
12/12/2013

print $1 -> Imprime la primera columna de la cadena suministrada. 12/12/2013

print $2 -> Imprime la segunda columna de la cadena suministrada. 14:32

De manera predeterminada, awk trata el carácter de espacio como el delimitador.


6
2018-02-22 15:26



Si su cadena de fecha está almacenada en una variable, entonces no necesita ejecutar un programa externo como cut, awk o sed, porque conchas modernas como bash puede realizar manipulación de cuerdas directamente, que es más eficiente.

Por ejemplo, en bash:

$ s="1/10/2013 23:41"
$ echo "${s% *}"
1/10/2013

2
2018-02-22 13:28