回答:
更新:新しい(異なる)スクリプトを追加しました... 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
。このスクリプトに
は未検証の問題があります。それは概念です。
1つの問題は次のとおりです。シンボリックリンク... 濁った海 ...
として-で、それは印刷し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 {} \;
これは、ファイルタイプごとではなく、パスとファイル名の2色の強調表示のみを行います 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