Я пишу общий сценарий оболочки, который отфильтровывает файлы на основе заданного регулярного выражения.Фильтровать папки, имя которых является меткой времени - сопоставление шаблонов и сопоставление регулярных выражений с помощью утилиты find
Мой сценарий оболочки:
files=$(find $path -name $regex)
В одном из случаев (для фильтрации), я хочу, чтобы фильтровать папки внутри каталога, имя папки в указанном ниже формате:
20161128-20:34:33:432813246
YYYYMMDD-HH:MM:SS:NS
Я не могу найти правильное регулярное выражение.
Я могу получить путь к файлам внутри папки, используя regex '*data.txt'
, так как я знаю имя файла внутри него.
Но это дает мне полный путь к файлу, что-то вроде
/path/20161128-20:34:33:432813246/data.txt
То, что я хочу, это просто:
/path/20161128-20:34:33:432813246
Пожалуйста, помогите мне в определении правильного регулярного выражения для моего требования
ПРИМЕЧАНИЕ:
Я знаю, как обрабатывать данные после
files=$(find $path -name $regex)
Но поскольку сценарий должен быть общим для многих случаев использования, нужно только правильное регулярное выражение, которое должно быть передано.
это не регулярное выражение, это подстановочный знак! –
Вы имеете в виду, что я требую, является подстановочным знаком, а не регулярным выражением? – ADPK
нет, я просто имел в виду, что вы не можете использовать регулярные выражения с 'find'. Только шаблоны подстановочных знаков (вы используете подстановочный знак) –