我想使用grep
bash脚本在文件中查找匹配的行,突出显示匹配的颜色,然后使用该column
命令在表中打印出结果.像这样的东西:
data=`cat file.data | egrep -i --color "$search"`
echo $'\n'"col1"$'\t'"col2"$'\t'"col3"$'\t'"col4"$'\n'"$data" | column -t -s$'\t'
Run Code Online (Sandbox Code Playgroud)
上面的代码可以根据需要执行所有操作,但颜色会丢失.
这是一个简化的例子:
正如您所看到的,当我使用时grep
,结果被打印在单独的行和颜色上,但是当我将结果保存到变量然后将变量打印出来时,换行符和颜色都消失了.
有什么方法可以做我要问的事吗?
使用选项--color=always
:
data=$(egrep -i --color=always "$search" file.data)
Run Code Online (Sandbox Code Playgroud)
默认情况下,grep
除非输出直接发送到终端,否则不会产生颜色.这通常是件好事.该选项--color=always
会覆盖该选项.
对于不想要颜色的场合,请使用--color=never
.