カラー出力は可能ですか?探す注文する?つまり、見つかった各エントリのパスでディレクトリは青色、実行可能なスクリプトは緑色などですか?バージョン4.4.2を使用しています。GNU findutils。
編集 - 明確にするために、各結果は次のように強調表示されます。
./path/to/file.sh
^ ^ ^
| | L green
blue
(例:実行されている場合find . -type f
)
ベストアンサー1
修正する:私は新しい(他の)スクリプトを追加しました...ツイストIgnacio Vazquez-Abrams
で:質問はexecutable scripts are green, et cetera
...まあ...この答えの終わりにそのような(プロタイプ)スクリプトを見つけることができます。
最初の(元の)部分はgrc
sumsに関するものですgrcat
。
これはうまくいきますgrc
...(例:エンゾチップすでに指摘しています。パッケージ名は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