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.