답변:
업데이트 : 새로운 (다른) 스크립트를 추가했습니다 ... Ignacio Vazquez-Abrams
요점이 있습니다. 질문은 실제로 executable scripts are green, et cetera
..를 묻습니다 . 괜찮아 ...이 답변의 끝에 그런 (시제품) 스크립트를 찾을 수 있습니다.
첫 번째 (원본) 섹션에 관한 것입니다 grc
및 grcat
.
작동해야합니다. grc
로 ( enzotib이 뾰족한 아웃을 갖는다 .. 패키지 이름이다 grc
.. 예에서 사용한 서브 유틸리티이다grcat
generic colouriser for everything
generic colouriser, can be used to colourise logfiles,
output of commands, arbitrary text....
configured via regexp's.
다음 예제는 인쇄
./
자홍색으로 bin/cpp/
청록색 bigint
굵은 흰색 아직 설정 파일을 처리하는 방법을 완전히 정리하지는 않았지만 원하는대로 할 것입니다 (한 번 길 들이면됩니다). 하위 디렉토리가없는 파일의 경우 색상 순서가 표현식과 동일한 순서가 아닌 것 같습니다.
나는 가능하다고 가정하지만 (현재 조금 바쁘다) ...
echo "# my config file
regexp=(\./)(.*/)([^/]+)
colours=bold white,magenta,cyan
">$HOME/.grc/findhi
find . -maxdepth 3 -name '*' | grcat findhi
새로운 이그나시오 영감 스크립트 는 다음과 같습니다. :)
단일 경로를의 첫 번째 인수로 사용하는 경우 작동합니다 find
. 이 스크립트
에는 UNTESTED 문제가 있습니다. 그것은 개념 일뿐입니다.
한 가지 문제는 다음과 같습니다. Symbolic Links ... murky waters ... 그대로, 알 수없는 유형 (예 : 심볼릭 링크)이 발생
하면를 인쇄 한 ERROR
다음 계속해서 처리합니다.
덕분에 enzotib
에 대한 tput
예.
dircol=$(tput bold ;tput setaf 4)
coloff=$(tput sgr0)
root="$HOME" # define path here, not in 'find` arg
root="${root:-.}" # default to '.'
root="${root%/}/" # add trailing '/'
#
find "$root" -maxdepth 1 -name '*' -printf "%y %P\n" |
while read -r line ;do
case $line in
d ) printf "%s\n" "$dircol$root$coloff";;
d\ *) printf "%s\n" "$dircol$root${line:2}$coloff";;
f\ *) l="$root${line:2}"
d="${l%/*}/"
f="${l##*/}"
cd -P "$d"
printf "%s" "$dircol$d$coloff"
ls --color=always -R1 "$f"
cd - >/dev/null
;;
*) printf "ERROR - type not yet catered for\n";;
esac
done
grcat
유틸리티를 참조한다고 말하는 것을 잊었습니다. grc
:) 처음에 나는 당신이 말하는 것을 이해하기가 어려웠습니다.
-exec
대부분의 작업을 수행 하는 데 사용할 수 있습니다 (내 솔루션은 디렉토리 부분을 다르게 채색하지 않습니다). -print
당신의 find
명령 에 있다면 -exec ls --color -d
; 암시 적 인쇄를 사용하는 경우 추가하십시오. 이것은 귀하의 ls
지원 --color
옵션을 가정합니다 .
find . -exec ls --color -d {} \;
이것은 파일 유형별이 아닌 경로 및 파일 이름에 대한 두 가지 색상 강조 표시 만 수행합니다 ls
.
grep
일치하는 부분과 일치하지 않는 부분에 대해 올바른 색상으로 출력 색상을 구성하고 파일 이름을 일치시킵니다.
$ export GREP_COLORS="sl=0;33;49:ms=1;34;49"
$ find /etc/ -type f | head | grep --color=always '^\|[^/]*$'
변수를 덮어 쓰지 않으려면 GREP_COLORS
다음에 대해서만 설정하십시오 grep
.
$ find /etc/ -type f | head | GREP_COLORS="sl=0;33;49:ms=1;34;49" grep --color=always '^\|[^/]*$'
(더 이상 사용되지 않는 변수에 대한 정의 GREP_COLOR
는의 것보다 우선 순위가 낮습니다 GREP_COLORS
)
컬러 코드에 대한 내용은 colortest-16
패키지에서 colortest
,
및 부 "로 설정 그래픽 렌 디션" ANSI 터미널 명령 시퀀스 .
나는 -exec 아이디어를 좋아했다. 이 함수를 만드는 데 사용했습니다.
function ff {
find . -name $1 -exec ls -G -d {} \;
}
bfs
:이 기능이 github.com/tavianator/bfs