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

时间:2018-05-23 03:13:13

标签: 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                        beer:22

我希望beer:21 beer:22以红色突出显示。请注意,beer字符串并非始终存在于其中一个文件中或存在,而是使用其他名称,例如apple:0

1 个答案:

答案 0 :(得分:2)

您可以使用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