Como converter formato de data em arquivo

0

Arquivo de entrada: Contém 3 colunas com a terceira coluna como data no formato DD-MMM-YYYY
dados de amostra:

1232,abdc, 02-Jan-2014
4534,kdafh, 20-Feb-2014
364,asjhdk, 11-Jul-2012

saída obrigatória:

1232,abdc, 2014-01-02
4534,kdafh, 2014-02-20
364,asjhdk, 2012-07-11

usando a data da função: date -d 20-DEC-2014 +%Y-%m-%d
 usou o comando awk dá erro
Existe alguma outra maneira?

    
por user_tmo 07.01.2015 / 06:39

2 respostas

2

Uma possível resposta usando awk, assumindo que o arquivo de entrada é input-file.txt e o arquivo de saída é output-file.txt:

awk -F ',' '{printf("%s,%s,",$1,$2);system("date -d "$3" +%Y-%m-%d");}' input-file.txt > output-file.txt
    
por 07.01.2015 / 09:56
0

Supondo que você insere texto é assim:

1232,abdc, 02-Jan-2014 18:01:37</br> 
4534,kdafh, 20-Feb-2014 07:17:19</br>
364,asjhdk, 11-Jul-2012 23:20:30</br>

minha resposta seria:

cat input-file.txt | sed 's[</br>[[g' | awk -F ',' '{printf("%s,%s,",$1,$2);system("date -d \""$3" "$4"\" +\"%Y-%m-%d %H:%M:%S\"");}' > output-file.txt

E se os registros estiverem em uma única linha (nenhuma nova linha no arquivo de entrada após o < / br & gt ;, ele será

cat input-file.txt | sed 's[</br>[\n[g' | awk -F ',' '{printf("%s,%s,",$1,$2);system("date -d \""$3" "$4"\" +\"%Y-%m-%d %H:%M:%S\"");}' > output-file.txt
    
por 08.01.2015 / 14:21

Tags