0
我使用grep v2.5.1
,我想在grep输出中着色文件名。sed模式以特定字符结尾或行尾
我可以用另一个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 "[email protected]" |
sed 's|/\([^/:]*\)(:|$)|/\o033[1;35m\1\o033[0m\2|'
}