Разделить номер из wc в bash + пакет

Итак, я пытаюсь перебрать кучу PDF-файлов, взять их количество символов и разделить на 5. Таким образом, вывод должен быть примерно таким:

PDF1.pdf
400

PDF2.pdf
1000

Предполагая, что PDF1.pdf имеет 2000 символов, а PDF2.pdf имеет 5000 символов. Это то, что я сейчас делаю:

for %%f in (*.pdf) do (
    echo %%~nf.pdf
    pdftotext %%~nf.pdf -enc UTF-8 - | wc -m
)

В чем я действительно ищу помощи, так это в том, чтобы взять значение из wc -m, разделить его на 5 и вывести его.

Я пробовал разные вещи, такие как SET /A total=(wc -m) / 5, но, похоже, ничего не получается.


person MortenMoulder    schedule 24.11.2016    source источник
comment
Также тесно связан с командой вывода CMD.   -  person aschipfl    schedule 24.11.2016


Ответы (1)


for %%f in (*.pdf) do (
 echo %%~nf.pdf
 for /f %%c in ('pdftotext %%~nf.pdf -enc UTF-8 - ^| wc -m') do set /a words=%%c / 5
 call echo %%words%%
)

должен сделать трюк. Заключите в одинарные кавычки команду, содержащую количество слов, — обратите внимание на знак вставки, чтобы выйти из вертикальной черты. Присвойте требуемое значение words и используйте трюк call echo для получения результата.

Есть и другие возможности...


С десятичной дробью...

 for /f %%c in ('pdftotext %%~nf.pdf -enc UTF-8 - ^| wc -m') do set /a words=%%c*2
 call echo %%words:~0,-1%%.%%words:~-1%%.

Умножить на 2=требуемое значение *10; показать все-бар-последний-символ, точка, последний-символ.

person Magoo    schedule 24.11.2016
comment
Ад да! Это сделало это. Любая подсказка, как я мог получить это с десятичными знаками? Сейчас округляет в меньшую сторону. - person MortenMoulder; 24.11.2016
comment
Десятичные числа действительно не работали. В данном случае я получил 14100.6., хотя должен был получить 29.1114. - person MortenMoulder; 24.11.2016
comment
Эээ, какое дело? Что было %%c, чтобы отобразить это? Пакет фактически ограничен целыми числами. Как получить 29.1114, разделив целое число на 5? Это будет означать, что wc возвращает 145 557 слов. - person Magoo; 24.11.2016
comment
145557 слов звучит примерно так, да. Я также пометил этот пост с помощью bash, так как я использую Git Bash для запуска команд, иначе pdftotext и wc не будут работать. - person MortenMoulder; 24.11.2016
comment
145557 дал мне 29111,4, используя метод, который я показал. Какие разделители тысяч/десятичных разделителей вы используете? - person Magoo; 24.11.2016
comment
Ааа, черт возьми, я понял прямо сейчас. Неправильная папка и неправильные файлы!! Извини чувак. Работает отлично! Большое спасибо! - person MortenMoulder; 24.11.2016