Я написал svn-hook для текстовых файлов. Тест содержимого выглядит так:
svnlook cat -t $txn $repos $file 2>/dev/null | file - | egrep -q 'text$'
и мне было интересно, можно ли это сделать с помощью Perl. Однако что-то вроде этого не работает:
svnlook cat -t $txn $repos $file 2>/dev/null | perl -wnl -e '-T' -
Я проверяю состояние завершения этого вызова ($?), Чтобы увидеть, был ли данный файл текстовым или двоичным. Так как я получаю контент из SVN. Я не могу использовать обычную проверку файлов в Perl.
Я провел симуляцию с помощью файловой программы и Perl с помощью текстового и двоичного файла (text.txt, icon.png):
find -type f | xargs -i / bin / bash -c 'if $ (cat {} | file - | egrep -q "text $"); затем эхо "{}: текст"; else echo "{}: двоичный"; фи '
. / Text.txt: текст
./icons.png: двоичный файл
find -type f | xargs -i / bin / bash -c 'if $ (cat {} | perl -wln -e "-T;"); затем эхо "{}: текст"; else echo "{}: двоичный"; фи '
. / Text.txt: текст
./icons.png: текст