unix - Imprimiendo solo el primer campo en una cadena
sed awk (3)
Tengo una fecha como 12/12/2013 14:32
Quiero convertirla en solo 12/12/2013
. La cadena puede ser 1/1/2013 12:32
o 1/1/2013 12:32
Necesito solo la parte de la fecha.
Puede hacerlo fácilmente con una variedad de herramientas 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
Si su cadena de fecha se almacena en una variable, entonces no necesita ejecutar un programa externo como cut
, awk
o sed
, porque los shells modernos como bash
pueden realizar la manipulación de la cadena directamente, lo que es más eficiente.
Por ejemplo, en bash:
$ s="1/10/2013 23:41"
$ echo "${s% *}"
1/10/2013
$ 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
Por defecto, awk trata el carácter de espacio como el delimitador.