sdiff 命令
用途
比较两个文件并以并排的格式显示差别。
语法
描述
sdiff 命令读取由 File1 和 File2 参数指定的文件,使用 diff 命令比较二者,并将结果以并排格式写到标准输出。 如果行相同,那么 sdiff 命令就会显示两个文件的每一行,其间有一系列的空格。 如果该行只存在于参数指定的文件中,则在空格区域显示 <(小于号);如果该行只存在于参数指定的文件中,则在空格区域显示 >(大于号)。 File1 如果该行只存在于参数指定的文件中,则在空格区域显示 >(大于号)。 File2 如果行只存在于参数指定的文件中,则显示 >(大于号);如果行不同,则显示 |(竖杠)。
当指定 -o 标志时, sdiff 命令合并 File1 和 File2 参数指定的文件并生成第三个文件。
注:sdiff 命令会调用 diff -b 命令来比较两个输入文件。 -b 标志会引起 diff 命令忽略尾随空格和制表符,并将其他空格字符串视为相同的字符串。
标志
| 项 | 描述 |
|---|---|
| -l | 当行相同时只显示左侧内容。 |
| -o OutFile | 通过将 File1 和 File2 参数指定的两个文件在受控下逐行合并,来创建 OutFile 变量指定的第三个文件。 以下子命令管理该文件的创建:
|
| -s | 不显示相同的行。 |
| -w 数字 | 设置输出行的宽度。 Number 变量的缺省值为 130 个字符。 Number 变量的最大宽度是 2048。 Number 变量的最小宽度是 20。 如果指定的值大于 2048,那么 sdiff 命令使用 2048。 |
退出状态
sdiff 命令返回下列退出值:
| 项 | 描述 |
|---|---|
| 1 | 成功完成。 |
| 2 | 发生错误。 |
示例
- 要打印两个文件的比较,请输入:
sdiff 命令显示一个并排列表,用于比较chap1.bak和chap1格式的文件。sdiff chap1.bak chap1 - 要仅显示不同行,请输入:sdiff 命令在工作站上显示差别。 该-w 80标志和变量将页面宽度设置为 80 列。 该-s标志指示不会显示两个文件中相同的行。
- 要选择性地组合两个文件的部分,请输入:sdiff 命令将chap1.bak和chap1将文件放入新文件中,称为chap1.combo. 对于每组不同的行, sdiff 命令提示您保留哪个组或您是否要使用 ed 命令对它们进行编辑。
- 要组合和编辑两个文件,staff.jan和staff.apr,并将结果写入staff.year文件,执行指示的步骤。
该staff.jan文件包含以下行:
该staff.apr文件包含以下行:Members of the Accounting Department Andrea George Karen Sam ThomasMembers of the Accounting Department Andrea Fred Mark Sam Wendy- 输入以下命令:
sdiff 命令将开始比较staff.jan和staff.apr文件并将结果写入staff.year中。 sdiff 命令显示以下内容:sdiff -o staff.year staff.jan staff.apr
%(百分号)是命令提示符。Members of the Accounting Dept Members of the Accounting Dept Andrea Andrea George | Fred % - 输入 e b 子命令以开始使用 ed 命令编辑输出文件。
sdiff 命令显示数字序列,它表示合并的行的字节数。 在这种情况下,字节计数为23.
- 输入 q 子命令以退出 ed 命令并继续组合和编辑这两个文件。 sdiff 命令显示以下内容:
Sam Sam Thomas | Wendy - 再次输入 e b 子命令。 每当两个原始文件的一组行合并成输出文件时,必须运行 ed 命令。 此实例中的字节计数为13.
- 输入 q 子命令以保存更改。 当将两个文件的所有行都合并成输出文件时,q 子命令退出 ed 和 sdiff 命令。
Members of the Accounting Department Andrea George Karen Fred Mark Sam Thomas Wendy - 输入以下命令:
文件数
| 项 | 描述 |
|---|---|
| /usr/bin/sdiff | 包含 sdiff 命令。 |