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

3960
scravy

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

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

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

6
KDE Konsole выделит любое слово в строке поиска - вы можете запустить его в Gnome. Будет ли это работать? Paul 12 лет назад 0
@Paul спасибо, это начало :-) scravy 12 лет назад 0

3 ответа на вопрос

7
jfg956

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

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

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

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

1
golimar

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

-2
user674717

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

cat filename|grep word -w 

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