【问题标题】:how to color the output for two different strings in two different files in Bash如何为 Bash 中两个不同文件中的两个不同字符串的输出着色
【发布时间】:2018-05-23 03:13:13
【问题描述】:

我有两个文件总是包含不同的字符串,我想知道一种方法可以打印出这两个文件中的所有内容并仅突出显示它们之间的差异。

$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 以红色突出显示。请记住,beerstring 并不总是存在于其中一个文件中或存在,而是使用不同的名称,例如 apple:0

【问题讨论】:

  • 你想让我们重新发明diff吗?
  • Diff 将仅输出两个文件之间的差异,我希望将差异与其他输出一起突出显示。如果我错了,请纠正我
  • 当然。到目前为止,您尝试过什么?
  • 我没有在这个操作上尝试过diff,因为现在的输出是我想要的......
  • 不行,我还没找到解决办法

标签: regex linux bash file-io


【解决方案1】:

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

【讨论】:

  • 我试过了,但我可以并排吗?因为 -y 对此不起作用,你知道吗?
猜你喜欢
  • 1970-01-01
  • 2013-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-13
  • 2013-07-23
  • 2018-08-18
相关资源
最近更新 更多