Если вам не нужно воздействовать на каждый каталог в целом, вы можете сделать один цикл чтобы перечислить все файлы. Активируйте расширенные шаблоны в стиле ksh , чтобы получить шаблоны или.
shopt -s extglob
for file in @(lebenslauf|titlePage)/*.tex; do
echo "$file"
done
Примечание. Всегда используйте двойные кавычки при замене переменных .
Соответствие между линиями между шаблонами, включая любую границу, является стандартным селектором диапазона в sed:
sed -n -e '/pattern1/,/pattern2/p' example.txt
В зависимости от того, насколько производительность -критична для вас (насколько велики файлы ), я, вероятно, поленюсь и воспользуюсь вторым проходом, чтобы удалить маркеры pattern2:
cat example.txt \
| sed -n -e '/pattern1/,/pattern2/p' \
| sed -e '/pattern2/d'
(Да, это бесполезное использование cat, потому что я предпочитаю удобочитаемость объединения нескольких конвейерных фильтров потере производительности,и я не уверен прямо сейчас, является ли < example.txt | sed... | sed...
мандатом POSIX или просто расширением, которое присутствует в bash и zsh.)