如何只在diff中添加/更改行?

时间:2014-10-22 04:37:23

标签: shell diff

A.TXT

1
2
3
4
5
6

b.txt

10
2
3
40
50
6
70

我想对这些生成以下输出的文件运行一些命令。

10
40
50
70

如何在两个文件上运行差异,但显示已更改的行。我不希望输出周围有任何其他元数据。

我也不希望看到更改行的任何上下文。

3 个答案:

答案 0 :(得分:5)

尝试

comm -1 -3 a.txt b.txt

comm,common lines,是一个方便的命令。

答案 1 :(得分:1)

@Brian Tiffin的回答可能适用于某些人。

如果你遇到问题,我就可以开始工作了

$ diff -U0 a.txt b.txt | grep ^+ | sed -e /s^+//

答案 2 :(得分:1)

其实我很喜欢Brian的答案,使用“comm”。这对我来说很新,对我有用。

我更复杂的方法是使用diff,grep链接然后sed删除前两个字符。

diff a.txt  b.txt  | grep ">" | sed  s/..//

不漂亮,不是防弹,而是快速破解。