首页 > 解决方案 > diff 2 个文件,其输出不包含额外行

问题描述

我有 2 个文件 test 和 test1 ,我想在它们之间做一个差异,而输出没有额外的字符 2a3、4a6、6a9,如下所示。

mangoes
apples
banana
peach
mango
strawberry

测试1:

mangoes
apples
blueberries
banana
peach
blackberries
mango
strawberry
star fruit

当我区分两个文件时

$ diff test test1
2a3
> blueberries
4a6
> blackberries
6a9
> star fruit

我如何获得输出为

$ diff test test1
blueberries
blackberries
star fruit

标签: linuxbashunixdiff

解决方案


您可以使用grep过滤掉不是不同文本的行:

$ diff file1 file2 | grep '^[<>]'
> blueberries
> blackberries
> star fruit

如果要删除指示哪个文件不同的方向指示器,请使用sed

$ diff file1 file2 | sed -n 's/^[<>] //p'
blueberries
blackberries
star fruit

(但看不到哪个文件不同可能会令人困惑......)


推荐阅读