私grep v2.5.1
はgrep出力内のファイル名を色付けしたいと思っています。
pattern で別の grep コマンドを使用できます/[^/:]*\(:\|$\)
。
grep --color=always something */* | grep --color '/[^/:]*\(:\|$\)'
また、これと同じパターンでファイルを一覧表示することもできます。
grep --color=always something */* -l | grep --color '/[^/:]*\(:\|$\)'
しかし、私はコマンドを好むでしょう、そして私は翻訳するsed
方法がわかりません:-(\(:\|$\)
sed
例えば:
echo 'dir/file: xxxx' | sed 's|/\([^/:]*\)(:|$)|/\o033[1;35m\1\o033[0m\2|'
参考までに、私の完全な機能~/.bashrc
gg() {
find . -name .svn -prune -o -type f '(' -name '*.java' -o -name '*.h' -o -name '*.cpp' -o -name 'Make*' -o -name '*.sh' ')' -print0 |
xargs -0 grep --color=always "$@" |
sed 's|/\([^/:]*\)(:|$)|/\o033[1;35m\1\o033[0m\2|'
}