linux - 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
解决方案
您可以使用grep
过滤掉不是不同文本的行:
$ diff file1 file2 | grep '^[<>]'
> blueberries
> blackberries
> star fruit
如果要删除指示哪个文件不同的方向指示器,请使用sed
:
$ diff file1 file2 | sed -n 's/^[<>] //p'
blueberries
blackberries
star fruit
(但看不到哪个文件不同可能会令人困惑......)
推荐阅读
- reactjs - JSReact,删除除最后一项之外的任何动态添加的表单内容会擦除表单
- reactjs - 带有 MSAL 库的无限循环 React 示例
- html - HTML 表格中的 JavaScript 日期选择器
- excel - 如何用密码汇总文件夹中的excel文件
- python - 如何转换张量流模型并加载为 tfds
- java - 在登录测试中未在 SecurityContext 中找到 Authentication 对象
- java - 将数组的特定元素从一个数组移动到另一个不同大小的数组
- javascript - 如何使用 javascript 在 DOM 中添加 laravel 组件
- flutter - 如何在应用程序中显示数据列表?
- node.js - 如何在获取模块获取流中捕获无效的 url 错误?