Форматирование порядка дат в csv с использованием awk

префикс вашей команды словом «команда». Бывший.

command ls
0
28.02.2018, 17:57
3 ответа

Si sus datos no incluyen ninguna otra fecha -como formatos, puede usar seden toda la línea para cambiar las fechas:

sed 's#\([0-9][0-9]\)/\([0-9][0-9]\)/\([0-9][0-9][0-9][0-9]\)#\3/\1/\2#g'
1
28.01.2020, 02:18

Prueba esto:

sed -E 's|([0-9]{2}/[0-9]{2})/([0-9]{4})|\2/\1|g' file

o

perl -pe 's|(\d{2}/\d{2})/(\d{4})|$2/$1|g' file

Salida:

1111,2222,3333,4444,5555,6666,7777,2017/11/27 18:58:48,2017/11/27 19:07:57
1
28.01.2020, 02:18

Awksolución:

awk -F',' 'function reformat_date(c){     # `c` - column value as an argument
               y = substr(c, 7, 4);       # extract `year` value
               sub(/\/[0-9]{4}/, "", c);  # remove `year` value
               return y"/"c               # return rearranged `YYYY/MM/DD` value
           }
           { $8 = reformat_date($8); $9 = reformat_date($9) }1' OFS=',' file.csv

Muestra de salida:

1111,2222,3333,4444,5555,6666,7777,2017/11/27 18:58:48,2017/11/27 19:07:57
2
28.01.2020, 02:18

Теги

Похожие вопросы