2016-06-30 4 views
0

Я ищу команду или простую процедуру для получения даты из имени файла. Мое имя файла может иметь несколько форматов даты.Получить дату с именем файла

Например:

Filename      Format   Output 
filename_2016-01-01  filename_%Y-%m-%d 2016-01-01 
2016-01-01_filename  %Y-%m-%d_filename 2016-01-01 
20160101-filename   %Y%m%d_filename  2016-01-01 
1451606400-filename  %s-filename   2016-01-01 

Я ищу какой-то процедуры, скажем, если я указываю мой «Формат» будет возвращать дату из этого формата в качестве выходного. Меня не волнует формат вывода. Я не ожидаю огромного сценария. Пожалуйста, дайте мне знать, если такая функциональность уже существует.

Если нет другой процедуры, я планирую ее построить.

+0

Так что не время создания файла, а подмножество фактического файла вы хотите вернуться? Хранить ли он в файле? Вывод на экран? Дайте некоторый псевдо-разыскиваемый вывод. – mattias

+0

Да. Дата из имени файла. Я обновлю результат. – Prashanth

+0

Остается ли остальное имя файла? Например, если это всегда «Filename » или « _filename» или « -filename», разве вы не можете просто удалить известную часть? – mattias

ответ

2

Bash имеет переменную разыменования модификации синтаксиса, который может обрабатывать некоторые из того, что вы хотите:

$ f=filename_2016-01-01 
$ echo ${f#*_} 
2016-01-01 

$ f=2016-01-01_filename 
$ echo ${f%_*} 
2016-01-01 

$ f=20160101-filename 
$ echo ${f%-*} 
20160101 

$ f=1451606400-filename 
$ echo ${f%-*} 
1451606400 
Смежные вопросы