PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах

Аватара пользователя
nkaretnikov

PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах

Сообщение nkaretnikov »

Здравствуйте!

Как получить количество, скажем, русских символов в двуязычной строке

Пример

‘строкасодержащаяenglishsymbol’.lenRU и результат 15

‘строкасодержащаяenglishsymbol’.lenEN и результат 13



В идеале скрипт должен считать количество символов каждого языка в мультиязычных файлах, но эту часть я знаю как создать, а о подсчет спотыкаюсь
Аватара пользователя
Kazun

Re: PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах

Сообщение Kazun »

Токмо шаблон чуть ширше — [а-яё], поскольку ё выпадает за границы от а до я.
Аватара пользователя
Iska

Re: PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах

Сообщение Iska »

Цитата Iska:



Токмо шаблон чуть ширше — [а-яё], поскольку ё выпадает за границы от а до я.



А еще лучше \p{IsCyrillic}. Почему? Есть вероятность, что при задании шаблона [а-яё] может быть введена латинская a, и тогда, например, в строке 'съеш ещё этих мягких французских булок, да выпей чаю! /dev/null' итог будет равным 50, а не 43 как положено, поэтому использование \p{IsCyrillic} более предпочтительно.
Аватара пользователя
Nikolay_Karetnikov@vk

Re: PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах

Сообщение Nikolay_Karetnikov@vk »

Спасибо!







Код:

Код: Выделить всё

$lines = Get-Content 'C:\powershell\in.txt'
$len = $lines.length



выдает $len=3 на вложенном файле.



Как это? Вроде ожидать надо количество символов, а не строк Изображение
Аватара пользователя
greg zakharov

Re: PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах

Сообщение greg zakharov »

Дык если в файле три строки, что Вы ожидаете увидеть, десять? Get-Content по уолчанию считвает файл как массив строк, отсюда и количество строк, а не символов.
Аватара пользователя
greg zakharov

Re: PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах

Сообщение greg zakharov »

Символы нужны Изображение

По строкам считать в цикле или есть проще способ?
Аватара пользователя
Nikolay_Karetnikov@vk

Re: PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах

Сообщение Nikolay_Karetnikov@vk »

Ну дык используйте measure:



Код:

Код: Выделить всё

Get-Content in.txt | Measure-Object -Character
Аватара пользователя
greg zakharov

Re: PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах

Сообщение greg zakharov »

Цитата greg zakharov:



Есть вероятность, что при задании шаблона [а-яё] может быть введена латинская a,
PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах




Ну, это навряд ли.



Указанное Вами идеологически более верное — вроде как факт. Но дело в том, что туда попадут все символы из набора 0400 - 04FF, т.е.:



Скрытый текст

[spoiler]Изображение[/spoiler]




а не только буквы русского алфавита от а до я. А оно нам надо? Вопрос риторический.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»