Изменение формата даты и времени из csv файла без использования date -d

Вы должны использовать набор аргументов для охвата хоста :

В основном:

  • -H для перехода на другие хосты, кроме указанных
  • -D , чтобы указать включаемые домены
  • - exclude-domains для указания исключаемых доменов

Например:

wget -rH --exclude-domains flickr.com myownsite.com

5
07.11.2017, 09:08
3 ответа

Esto se puede hacer fácilmente usando sed'sextended regex

Me sorprende que nadie haya dado respuesta usandosed

GNU seduna línea de:

sed -r 's/([0-9]{2})\/([0-9]{2})\/([0-9]{4})/\3\1\2/' file_name

Aquí usé expresiones regulares extendidas para capturar grupos

-1
27.01.2020, 20:33

Использование GNU date(, но неdate -d)и оболочки типа bash, которая понимает подстановки процессов:

$ cat file
Data1|Data2|10/24/2017 8:10:00 AM
Data1|Data2|10/24/2017 8:10:00 AM
Data1|Data2|10/24/2017 8:10:00 AM
Data1|Data2|10/24/2017 8:10:00 AM
Data1|Data2|10/24/2017 8:10:00 AM
$ paste -d '|' <( cut -d '|' -f -2 file ) <( date -f <( cut -d '|' -f 3 file ) +'%Y%m%d %T' )
Data1|Data2|20171024 08:10:00
Data1|Data2|20171024 08:10:00
Data1|Data2|20171024 08:10:00
Data1|Data2|20171024 08:10:00
Data1|Data2|20171024 08:10:00

Вызов dateсчитывает даты из команды cut, которая извлекает из заданного файла третий|-столбец с разделителями. Он выводит одну переформатированную дату на строку ввода.

Затем он вставляется вместе с первыми двумя столбцами с помощью paste.

Недостаток этого метода в том, что он считывает файл дважды, но вызывает dateтолько один раз (и без-d).

2
27.01.2020, 20:33

Вы также можете сделать это с помощью dateutils, например. со следующим вводом:

10/24/2017 8:10:00 AM
10/24/2017 8:10:00 PM
10/24/2017 8:10:00 AM
10/24/2017 8:14:00 PM
10/24/2017 8:10:00 AM
10/24/2017 8:11:00 PM
10/24/2017 8:10:06 PM
10/24/2017 8:10:00 PM
10/24/2017 8:10:50 AM

и программа dateconvили dateutils.dconv:

dateconv -i '%m/%d/%Y %H:%M:%S %p' -f '%Y%m%d %T' < infile

Выход:

20171024 08:10:00
20171024 20:10:00
20171024 08:10:00
20171024 20:14:00
20171024 08:10:00
20171024 20:11:00
20171024 20:10:06
20171024 20:10:00
20171024 08:10:50
0
27.01.2020, 20:33

Теги

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