LINUX.ORG.RU

Как посчитать длину слова из буфера обмена?

 


0

1

Здравствуйте. Возникла проблема -нужно посчитать длину слова (или строки), содержащейся в буфере обмена. Пробовал в скрипте писать так:

STRING=$(xclip -o)

echo ${#STRING}

С латинскими бувами - все ок, с кририллицей - длинна в 2 раза больше. Пробовал вместо xclip использовать xsel - один фиг, то же самое.

Я так понял, что кирилические символы адресуются 2 байтами. Нет ли какого-нибудь метода, чтоб универсально определялось именно количество символов?



Последнее исправление: warezzzok (всего исправлений: 1)

Ответ на: комментарий от kernelpanic

Спасибо тебе, добрый человек! Это то, что надо.

warezzzok
() автор топика

Ну, решение уже есть.
Но ситуация меня удивляет.

┌[lord] [home-hell-machine]:~ 
└>xclip -o
тест
┌[lord] [home-hell-machine]:~ 
└>qqq=$(xclip -o)

┌[lord] [home-hell-machine]:~ 
└>echo $qqq
тест

┌[lord] [home-hell-machine]:~ 
└>echo ${#qqq}
4
Как так выходит, что у вас в два раза больше?
Интересно для понимания.

Spirit_of_Stallman ★★★
()
Ответ на: комментарий от Spirit_of_Stallman

Да, кагбэ вот:

echo -n удивляет | xclip
qqq=$(xclip -o)
echo $qqq
echo ${#qqq}
код

warezzz@WareZzZ:~/Desktop/Dropbox/linux$ sh ~.sh удивляет 16

warezzzok
() автор топика
Ответ на: комментарий от like-all

wc -m считает байты, кириллица в UTF-8 кодируется двумя байтами.

да ты чо?

echo -n кириллица | wc -m && echo -n кириллица | wc -c
9
18

novitchok ★★★★★
()
Ответ на: комментарий от anonymous

Дочитал бы хоть, прежде чем вбрасывать.

Что за глупые предрассудки.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.