Строка даты в эпоху в 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 

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 )

  • Удалить каталоги, содержащие определенный файл
  • сохранение вывода командной строки в текстовом файле?
  • Навигация по истории в режиме Vi оболочки Bash
  • Может ли RSH сказать использовать конкретную оболочку
  • Как осуществляется перенаправление?
  • Что означает поиск файла в оболочке?
  • bash: невозможно установить переменную в сплошную строку
  • Как создать исполняемый скрипт bash для этих команд?
  • Поиск среди содержимого большого количества текстовых файлов?
  • Стандарты для строк с двойными кавычками
  • Стандартное решение для отображения сообщений на оболочке или с помощью оконных менеджеров gui
  • xargs не запрашивает после каждой строки
  • Linux и Unix - лучшая ОС в мире.