Выделите одно слово * всегда * в терминале

8

Существует ли эмулятор терминала (например, терминал GNOME) для linux / unix, который позволяет всегда выделять одно слово (например, «выделить слово FAIL красным»)? Или, может быть, есть плагин для терминала GNOME (если существует такая вещь, как «плагины для терминала gnome»).

Решение должно выделять слово независимо от того, какое приложение запускается внутри терминала, т.е. при запуске cat test.txtдолжно выделяться слово и так же make all.

Любая помощь очень ценится моими мутными глазами.

scravy
источник
KDE Konsole выделит любое слово в строке поиска - вы можете запустить его в Gnome. Будет ли это работать?
Пол

Ответы:

9

Используя bash, вы можете выделить все слово «FAIL» красным, используя следующие команды:

txtred=$(echo -e '\e[0;31m')
txtrst=$(echo -e '\e[0m')
bash | sed -e "s/FAIL/${txtred}FAIL${txtrst}/g"

Он создает новую оболочку bash и редактирует стандартный вывод этой новой оболочки с помощью sed. Если вы хотите завершить выпуск stdout, просто введите, exitчтобы вернуться к предыдущей оболочке. Вы можете найти больше цветовых команд здесь . echo -eИзменение необходимо , чтобы получить реальное значение побега \e.

Я попробовал это с echoи catв этой оболочке, и это работает. Тем не менее, это нарушает программы, ожидающие терминала, как их вывод, как vi. Я предполагаю, что это также сломало бы программы, использующие специальную буферизацию вывода. Это также нарушает команды like echo -n FAILи меняет поведение команд like ls(ls печатает много файлов на строку, когда вывод является терминалом, и один файл на строку, когда вывод является конвейером).

jfg956
источник
2

клид работает отлично. Я использую его на RHEL 6.2, из репозитория EPEL

golimar
источник
-2

Ты можешь использовать

cat filename|grep word -w 

где filename- имя файла и wordслово, которое вы хотите выделить.

user674717
источник