Скрипт Unix Bash для выделения / подчеркивания / выделения курсивом определенного текста - PullRequest
21 голосов
/ 11 декабря 2010

Я бродил по сети, пытаясь найти примеры сценария Unix Bash, который может обрабатывать базовые стили текста (жирный шрифт / подчеркивание / курсив), но не могу найти что-нибудь? Возможна ли такая вещь?

Например:

  1. Embolden / Подчеркнуть / Выделить курсивом все строки, заканчивающиеся на ":"?
  2. (Выключить) Embolden / Подчеркивание / Курсив всех строк, заканчивающихся на ":"?

Я хочу настроить его как сервис через Automator; таким образом, используя /bin/bash и воздействуя на «выделенный текст» (в файле, совместимом с форматированным текстом, конечно).

1 Ответ

21 голосов
/ 11 декабря 2010

По сути, вы хотите объявить некоторые переменные с помощью кода стиля - что-то вроде этого:

underline=`tput smul`
nounderline=`tput rmul`
bold=`tput bold`
normal=`tput sgr0`

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

echo "${bold}bold${normal} text stands out!"
echo "${underline}underlined${nounderline} text does, too."

Что касается автоматизации его применения ко всем строкам, начинающимся с определенного символа, то лучше использовать переменные, как показано выше. Помимо того, что этот метод проще, он также чище и удобнее в использовании. Например, при использовании этого метода у вас есть возможность по-разному стилизовать любое количество слов в заданной выходной строке, чтобы выделить конкретное слово, а не все предложение (если, конечно, это не ваша цель).

Для получения дополнительной информации вам следует проверить http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x405.html и / или man tput

...