Regex 如何在Bash中为两个不同文件中的两个不同字符串的输出着色

Regex 如何在Bash中为两个不同文件中的两个不同字符串的输出着色,regex,linux,bash,file-io,Regex,Linux,Bash,File Io,我有两个文件,将始终持有不同的字符串,我想知道一种方法,打印出这两个文件中的所有内容,并突出显示它们之间的差异 $cat file1.txt fox:1 bike:3 beer:21 $cat file2.txt fox:1 beer:22 bike:3 $pr -m -t file1.txt file2.txt fox:1 fox:1 beer:21 bike:3 bike:3

我有两个文件,将始终持有不同的字符串,我想知道一种方法,打印出这两个文件中的所有内容,并突出显示它们之间的差异

$cat file1.txt
fox:1
bike:3
beer:21

$cat file2.txt
fox:1
beer:22
bike:3

$pr -m -t file1.txt file2.txt
fox:1                         fox:1
beer:21                       bike:3
bike:3                        beer:22

我希望啤酒:21
啤酒:22
以红色突出显示。请记住,
beer
字符串并不总是存在于某个文件中,也不总是存在于某个文件中,而是以不同的名称存在,例如
apple:0
您可以使用
diff
并为更改的行设置颜色:

diff --old-group-format=$'\e[0;31m%<\e[0m' 
     --new-group-format=$'\e[0;31m%>\e[0m'      
     --unchanged-group-format=$'\e[0;32m%=\e[0m'    file1 file2
diff--旧组格式=$'\e[0;31m%\e[0m'
--未更改的组格式=$'\e[0;32m%=\e[0m]文件1文件2

您想让我们重新创建
diff
?diff将只输出两个文件之间的差异,我希望差异与其余输出一起突出显示。如果我不确定,请纠正我。到目前为止,您尝试了什么?我没有尝试此操作,因为现在输出是我想要的..不,我尝试了没有找到解决方案雪人试过了,但我能把它并排做吗?因为-y不能用这个,你知道吗?