Возможно, заголовок не совсем описательный, но я не смог найти более краткий способ описать проблему.
У меня есть каталог, содержащий разные файлы с именем, которое выглядит, например, так:
{some text}2019Q2{some text}.pdf
Таким образом, имена файлов имеют где-то в названии год, за которым следует заглавная буква Q, а затем еще одно число. Другой текст может быть любым, но он не будет содержать ничего, что соответствует формату year-Q-number. Также не будет чисел непосредственно до или после этого формата.
Я могу что-то найти, чтобы получить это из одного имени файла, но мне действительно нужен «список», чтобы я мог сделать for-l oop через это в bash.
Итак, если мой каталог содержит файлы:
costumerA_2019Q2_something.pdf
costumerB_2019Q2_something.pdf
costumerA_2019Q3_something.pdf
costumerB_2019Q3_something.pdf
costumerC_2019Q3_something.pdf
costumerA_2020Q1_something.pdf
costumerD2020Q2something.pdf
Я хочу для l oop, которое выходит за 2019Q2, 2019Q3, 2020Q1 и 2020Q2 .
РЕДАКТИРОВАТЬ:
Это то, что я до сих пор. Он может извлечь подстроки, но у него все еще есть двойники. Так как я уже в л oop и я не вижу, как я могу удалить двойные.
find original/*.pdf -type f -print0 | while IFS= read -r -d '' line; do
echo $line | grep -oP '[0-9]{4}Q[0-9]'
done