Мне нужно получить часть имени файла на основе шаблона. Шаблон файла здесь не для проверки того, совпадает ли имя файла с шаблоном. «?» Представляют даты, поэтому они могут быть в формате YYYYMMDD или YYYY-MM-DD, и я не хочу получать даты. Наверное, сейчас я просто попытаюсь получить часть письма до или после части даты на основе шаблона.Как grep часть имени файла с помощью grep или sed на основе шаблона в сценарии оболочки
Например, если шаблон имени файла и фактическое имя файла является:
*_???????? and file name: ab_cd_20160505_efg.txt
Я хочу Grep строки ab_cd
. efg
пропущен, потому что он не является частью шаблона.
Если файл шаблон и фактическое имя файла является:
????-??-??_* and file name: 2016-05-05_abc_def-ghi.csv
(содержит как тир и undercore), я хочу, чтобы Grep строки abc_def-ghi
. .csv
пропущен, потому что нас не волнует расширение файла, поэтому мы не дали .csv
в шаблоне.
Итак, может ли кто-нибудь дать мне знать, как это сделать, используя grep или sed или другую команду в сценарии оболочки?
Я не понимаю правила. –
Я удалил последний пример в сообщении. Наверное, сейчас я просто попытаюсь получить часть письма до или после номерной части. – jlp
Откуда взялся шаблон? Почему 'efg' пропущен в первом примере? Каково правило для символов между вопросительными знаками? Вы запрашиваете какое-то сопоставление из двух строк (шаблон плюс имя файла) в одну строку (ваш вывод), но правила до сих пор не ясны. –