Сценарий оболочки: список фильтра файлов pdf, для исключения тех, которые имеют .tex исходный файл

По умолчанию Ack ищет шаблон во всех недвоичных файлах ниже текущего каталога.

Я полагаю, что более старые версии Ack перерыли бы двоичные файлы при передаче их --binary флаг. Этот флаг был удален все же. Вы можете использовать grep вместо этого.

grep -ar 'foo' .
4
19.03.2015, 05:59
1 ответ

Вы можете просто использовать обычный цикл с [-E и $ {xxx% .pdf} , чтобы проверить и построить имена файлов. Это читает пути на стандартном входе, по одному в строке:

while read path
do
    [ -e "${path%.pdf}.tex" ] || echo "$path"
done

«$ {путь% .pdf}» расширяется до $ PATH с «.pdf», выделенным от конца, а затем мы может поставить «.tex» на конец напрямую. Если это -E xist, тогда мы ничего не делаем, а иначе ( || ) он распечатывает путь к PDF. Вы могли бы поставить более сложную логику и поведение там, если вы хотите.

Обычные оговорки о значении IFS и имена файлов, содержащих Newlines, и т. Д., Применяют, но если предполагают, что у вас ничего необычного происхождения на этом все работает прямо.

3
27.01.2020, 20:57

Теги

Похожие вопросы