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