У меня есть текстовый файл с настраиваемыми датами в его содержимом, например:
2018/Nov/28 file1 2019/Jan/17 file2 and so on
Как мне перевести часть 2019/Jan/17 в формат эпохи?
2019/Jan/17
С BSD date (который поставляется с macOS):
date
$ date -jf '%Y/%B/%d' +%s "2018/Nov/28" 1543442700
Параметр -j не позволяет вам фактически устанавливать системные часы; -f указывает формат ввода, а +%s обеспечивает формат вывода.
-j
-f
+%s
Perl умеет:
$ cat file 2018/Nov/28 file1 2019/Jan/17 file2 $ perl -MTime::Piece -ape '$F[0] = Time::Piece->strptime($F[0], "%Y/%b/%d")->epoch; $_ = "@F\n"' file 1543363200 file1 1547683200 file2
Советую установить dateutils и просто использовать strptime:
strptime
$ strptime -i "%Y/%B/%d" -f "%s%n" '2019/Jan/17' 1547683200