ti-enxame.com

Imprimindo apenas o primeiro campo em uma sequência

Eu tenho um encontro como 12/12/2013 14:32 Quero convertê-lo em apenas 12/12/2013. A cadeia pode ser 1/1/2013 12:32 ou 1/10/2013 23:41 Eu preciso apenas da parte da data.

29
user2099444

Você pode fazer isso facilmente com uma variedade de ferramentas 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
56
Chris Seymour
$ echo "12/12/2013 14:32" | awk '{print $1}'
12/12/2013

print $1 -> Imprime a primeira coluna da string fornecida. 12/12/2013

print $2 -> Imprime a segunda coluna da string fornecida. 14:32

Por padrão, o awk trata o caractere de espaço como o delimitador.

12
Suresh Anbarasan

Se sua string de data estiver armazenada em uma variável, você não precisará executar um programa externo como cut, awk ou sed, porque os shells modernos como bash pode executar manipulação de strings diretamente, o que é mais eficiente.

Por exemplo, no bash:

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