Строка даты в эпоху в bash

Как я могу получить эпоху, если у меня есть строка в следующем формате?
1/30/2017 11:14:55 AM
Не работает следующее:

 $ date -j '1/30/2017 11:14:55 AM' +'%m/%d/%Y %H:%M:%S' date: illegal time format 

  • Выполняет ли командный скрипт командный скрипт?
  • Трубопроводы, рабочие места и процессы в Zsh
  • Есть ли способ проверить подтверждение отправки электронной почты?
  • Удалять файлы с одинаковым именем в конце файла
  • Как удалить визуализацию расширенных атрибутов с моего терминала OSX?
  • Режим Vi или режим emacs во всей системе
  • Возможно ли в unix выполнять поиск внутри zip-файлов
  • Активировать команды PHP при входе в систему
  • Сценарий оболочки не выполняется
  • переименовывать файлы с помощью команды rename
  • Передайте флаг фона (&) через expect и ssh
  • Разбор символа строки с bash
  • One Solution collect form web for “Строка даты в эпоху в bash”

    Просто укажите формат ввода с -f :

     $ date -jf '%m/%d/%Y %H:%M:%S %p' '1/30/2017 11:14:55 AM' '+%m/%d/%Y %H:%M:%S' 01/30/2017 11:14:55 

    Что происходит после + – это выходной формат. Если вы хотите время эпохи, это будет +%s .

    (обратите внимание, что в этом коде нет ничего bash специфического.Этот код будет разбираться одинаково в любой оболочке, даже не-Bourne-подобных. date не является командой bash builtin, вот это команда date найденная в файловой системе, в частности, тот, который поддерживает эти расширения -f / -j BSD. В системах, отличных от BSD, эта команда, вероятно, не работает независимо от того, является ли оболочка bash или другим. Некоторые оболочки, такие как zsh или ksh93 имеют встроенные возможности анализа времени, но не bash )

    Linux и Unix - лучшая ОС в мире.