Можно ли получить цветной вывод команды find ? То есть в пути каждого найденного элемента каталоги отображаются синим цветом, исполняемые сценарии - зеленым, и так далее? Я использую версию 4.4.2 GNU findutils .
Изменить - чтобы уточнить, каждый результат будет выделен следующим образом:
./path/to/file.sh
^ ^ ^
| | L green
blue
(если, например, выполняется find . -type f
).
bfs
которая имеет такую функциональность: github.com/tavianator/bfsОтветы:
ОБНОВЛЕНИЕ: я добавил новый (другой) сценарий ...
Ignacio Vazquez-Abrams
имел смысл: вопрос действительно спрашиваетexecutable scripts are green, et cetera
... хорошо ... вы найдете такой (прототип) сценарий в конце этого ответа.Этот первый (оригинальный) раздел о
grc
иgrcat
.Это должно работать;
grc
... (как указал enzotib .. Имя пакета ... Подпрограмма,grc
использованная в примере,grcat
Следующий пример печатает
./
в пурпурномbin/cpp/
в голубомbigint
жирным белымЯ еще не полностью разобрался, как он обрабатывает свой конфигурационный файл, но похоже, что он будет делать то, что вы хотите (как только вы его приручите) ... например. для файла без поддиректории, и последовательность цветов, по-видимому, не совпадает с последовательностью выражений.
Я предполагаю, что это возможно (но я немного занят в данный момент) ...
Вот новый сценарий, вдохновленный Игнасио :)
Это работает, если вы используете один путь в качестве первого аргумента
find
.В этом скрипте есть НЕПРОВЕРЕННЫЕ проблемы. Это всего лишь концепция.
Одна проблема: символические ссылки ... мутные воды ...
Как есть, она печатает,
ERROR
когда встречает неизвестный тип (например, символическую ссылку), а затем продолжает обработку после этого.Спасибо
enzotib
заtput
примеры.источник
grcat
утилиту изgrc
пакета :) В начале у меня были некоторые трудности с пониманием того, что вы говорите.Вы могли бы использовать,
-exec
чтобы сделать большую часть этого (мое решение не окрашивает часть каталога по-другому). Если у вас есть-print
в вашейfind
команде, заменить его на-exec ls --color -d
; если вы используете неявную печать, добавьте это. Это предполагает, что выls
поддерживаете--color
опцию.источник
Это делает только двухцветную подсветку для пути и имени файла, а не для каждого типа файла
ls
:Сконфигурируйте цвета
grep
вывода правильным образом для совпавшей и несопоставленной части и сопоставьте имя файла:Возможно, вы не захотите перезаписывать переменную
GREP_COLORS
, поэтому устанавливайте ее только дляgrep
:(Определения от устаревшей переменной
GREP_COLOR
имеют меньший приоритет, чем вGREP_COLORS
)Для цветовых кодов см
colortest-16
из пакетаcolortest
,и в разделе «Графика Set Rendition» в командных последовательностей ANSI терминала .
источник
Мне понравилась идея -exec. Я использовал это, чтобы создать эту функцию:
источник