Проблема состоит в том, что Вы читаете файл с двумя экземплярами read
- один для чтения имени файла другое для получения ответа. Следовательно read
ожидание ответа ест каждое второе имя файла, и необходимо надеяться, что список файлов не похож:
some_throuwaway_stuff
foo
very_important_file.txt
Yes
some_throuwaway_stuff
foo
Ваш сценарий должен, вероятно, посмотреть что-то как:
#!/bin/bash
echo "Give directory to search for ASCII text files"
read direct
exec 3<&0
find "$direct" -type f |
while IFS= read -r name; do
echo "========================================"
if file "$name" | grep ASCII; then
echo "----------------------------------------"
head "$name";
echo "----------------------------------------"
echo "Do you want to delete this file?"
read -u 3 want
case $want in
YES|Yes|yes|Y|y)
rm "$name"
;;
*)
;;
esac
fi
done
Заметьте перенаправление exec 3<&0
который будет питаться регулярный stdin
к дескриптору файла 3, который затем проверяется в цикле на ответ от пользователя.
Тем не менее rm -i
вероятно более оптимальный вариант.
Можно проверить, не загрязнены ли также PDF-файлы с изображениями. Сначала конвертируйте PDF в (многостраничный) TIFF, например, с помощью ghostscript:
gs -sDEVICE=tiffg4 -o sample.tif sample.pdf
Затем конвертируйте TIFF в PDF, например:
tiff2pdf -z -f -F -pA4 -o sample-img.pdf sample.tif
В результате получится PDF-файл, страницы которого будут представлять собой изображения, а не текст.
В качестве альтернативы, если ваша система поддерживает печать файлов TIFF, попробуйте распечатать их напрямую.
Существует также возможность pdf2ps
для преобразования PDF в PS, что если работает, то, скорее всего, будет предпочтительнее.
Я сделал это так, как Дмитрий описал в комментариях , используя pdf2ps
и ps2pdf
.
Сначала я преобразовал свой PDF-файл в формат .ps
с помощью команды
pdf2ps my_file.pdf my_file.ps
А затем преобразовал его обратно в формат pdf
ps2pdf my_file.ps my_file.pdf
Таким образом, я получил растровую версию исходного PDF-файла, в котором содержимое на самом деле является изображением. Надеюсь это поможет.