Скрипт на bash для подсчёта количества символов

Не знаю, как остальные, но я довольно часто натыкаюсь на необходимость подсчитать количество символов в тексте. Конечно программы вроде gedit или другие офисные приложения, это умеют без проблем. Однако, что делать если такая необходимость возникает на странице в интернете? Например, если вам нужно оставить комментарий, а в поле ввода написано, что максимум 1000 символов и нету ни какого счётчика. Или, в моём случае, мне нужно отрерайтить текст со странице в интернете и хотелось бы быстро проверить, то, насколько кол-во символов на странице соответствует истине, которую написал заказчик. Да можно найти ещё множество применений такому скрипту.

Скрипт получился не очень большой, поэтому его код и процесс создания выложу прямо тут.

Вначале создаём файл. По традиции в папке bin.

mkdir ~/bin
gedit ~/bin/sim

В открывшийся блокнот нужно вставить следующий код:

#!/bin/bash
a=`xclip -o | wc -m | awk '{ print $1 }'`
b=`xclip -o | sed 's/ //g' | sed 's/.$//;N;s/\n/ /g' | wc -m | awk '{ print $1 }'`
notify-send 'Символов = '$a 'Символов б/п = '$b

Сохраняем, закрываем и не забываем сделать файл доступным для выполнения.

chmod +x ~/bin/sim

Для работы скрипта понадобится пакет xclip, который умеет помещать в буфер обмена выделенный текст, так что нужно установить и его.

sudo apt-get install xclip

Остаётся сделать последний шаг, а именно открыть свойства клавиатуры (Клавиатуру можно найти в системных параметрах или через dash поиск) и привязать скрипт к комбинации клавиш.

Указывайте путь к файлу полностью, т.е. /home/user/bin/sim, а не ~/bin/sim.

У меня сразу к клавише не привязался… пришлось полностью перезагружать систему, но это глюки гном шела и то единичный случай. Но на всякий случай имейте ввиду, что может потребоваться перезагрузка.

Теперь достаточно выделить любой участок текста и нажать нужное сочетание клавиш и результат не заставит себя ждать.

Gedit и остальные программы перенос строки считают за символ. При желание можно это исправить, достаточно лишь добавить склейку строк и в значение переменной «a» в скрипте. В переменной «b» первый sed убирает пробелы, а второй, как раз склеивает строки.

Поделись статьёй с друзьями

Или просто поиграйся с кнопочками

2 комментария на «Скрипт на bash для подсчёта количества символов»

  1. Удобная штука, главное все просто… хотя стоит добавить опцию просчета видимых и не видимых символов. Увы не только перенос строки и пробел считается как символ…

  2. серг:

    возможно что это не глюк gnoma — надо сделать в командной строке аналог команды rehash присутствующей в C-shell (tcsh). не помню как точно называется- гуглите.
    А то как то совсем по виндовому получается — на каждый чих перезагрузка.

Добавить комментарий