Gil*_*Gil 3 linux search highlight command-line-interface
我正在寻找一个linux命令,它搜索文本文件中的字符串,并在文件中的每个出现时突出显示(颜色),没有发出文本行(如grep那样).
小智 5
我写了这个方便的小脚本.它可能会扩展到更好地处理args
#!/bin/bash
if [ "$1" == "" ]; then
    echo "Usage: hl PATTERN [FILE]..."
elif [ "$2" == "" ]; then
    grep -E --color "$1|$" /dev/stdin
else
    grep -E --color "$1|$" $2
fi
它对突出显示运行进程的用户有用:
ps -ef | hl "alice|bob"
尝试
tail -f yourfile.log | egrep --color 'DEBUG|'
其中 DEBUG 是您要突出显示的文本。
我认为你的意思是“不省略文本行”(而不是发出)......
我知道没有这样的命令,但您可以使用这样的脚本(这是一个简单的解决方案,它将文件名(不带空格)作为第一个参数,将搜索字符串(也不带空格)作为第二个参数):
#!/usr/bin/env bash
ifs_store=$IFS;
IFS=$'\n';
for line in $(cat $1);
    do if [ $(echo $line | grep -c $2) -eq 0 ]; then
        echo $line;
    else
        echo $line | grep --color=always $2;
    fi
done
IFS=$ifs_store
另存为,例如 colorcat.sh,适当设置权限(以便能够执行它)并将其调用为
colorcat.sh filename searchstring
| 归档时间: | 
 | 
| 查看次数: | 3103 次 | 
| 最近记录: |