初学者 Linux sdiff 命令教程(8 个示例)
在此页
- Linux sdiff 命令
- Q1。 sdiff 命令如何工作?
- Q2。如何让 sdiff 忽略大小写?
- Q3。如何让 sdiff 忽略空格?
- Q4。如何让 sdiff 忽略空行?
- Q5。如何使 sdiff 抑制公共线路?
- Q6。如何让 sdiff 使用不同的 diff 程序?
- Q7。如何将 sdiff 输出保存到文件
- Q8。如何只输出左列
- 结论
在 HowtoForge,我们已经讨论了专注于查找文件差异的命令行实用程序。但是还有更多这样的工具,在本教程中,我们将使用一些易于理解的示例来讨论一个名为 sdiff 的命令。
请注意,本文中提到的所有 sdiff 命令示例均已在 Ubuntu 22.04 LTS 上进行了测试。
Linux sdiff 命令
sdiff 命令以并排形式显示文件差异。以下是它的语法:
sdiff [OPTION]... FILE1 FILE2
手册页是这样描述它的:
sdiff - side-by-side merge of file differences
Side-by-side merge of differences between FILE1 and FILE2.
以下是一些问答式的示例,应该可以让您很好地了解此工具的工作原理。
Q1。 sdiff 命令如何工作?
基本用法很简单,您所要做的就是以文件名作为参数运行 sdiff 命令。例如:
sdiff file1 file2
file1 和 file2 在我的例子中是完全一样的。

这是在这种情况下产生的输出 sdiff:

这种类型的输出意味着文件没有区别。
Q2。如何让 sdiff 忽略大小写?
假设 file1 和 file2 包含以下行:

命令:
差异文件 1 文件 2
产生以下输出:

第二列第一行中的竖线 (|) 表示这两个文件在第一行本身是不同的。但是,如果需要,您可以强制 sdiff 忽略大小写,这可以使用 -i 命令行选项来完成。
sdiff -i 文件 1 文件 2

所以您现在可以看到输出显示两个文件相同,这意味着忽略了大小写差异。
Q3.如何让 sdiff 忽略空格?
如果任何文件包含空格,默认情况下 sdiff 命令将显示差异。但是,如果需要,您可以使用 -Z 命令行选项来抑制此行为:

还有其他几个与空间相关的选项您应该注意。这是一个列表:
-E, --ignore-tab-expansion
ignore changes due to tab expansion
-b, --ignore-space-change
ignore changes in the amount of white space
-W, --ignore-all-space
ignore all white space
Q4.如何让 sdiff 忽略空行?
就像空格一样,默认情况下,sdiff 命令也会考虑空行。例如:

但是,您可以使用 -B 命令行选项使命令忽略空行。
sdiff -B 文件1 文件2

所以你可以看到 sdiff 命令在这种情况下没有将空行视为差异。
Q5.如何使 sdiff 抑制公共线路?
假设文件包含一些公共行,并且您希望 sdiff 命令抑制公共行,那么您可以使用 -s 命令行选项来实现。
sdiff -s 文件 1 文件 2
Q6.如何让 sdiff 使用不同的 diff 程序?
默认情况下,sdiff 使用 diff 进行比较。但是,如果需要,您甚至可以用您选择的程序替换 diff。为此,请使用需要程序名称作为输入的 --diff-program 选项。
sdiff --diff-program=[PROGRAM] file1 file2
Q7.如何将 sdiff 输出保存到文件
-o 或 --output 选项允许我们将 sdiff 结果保存到输出文件。例子:
sdiff --output=/tmp/mydiff.txt file1 file2
Q8.如何只输出左列
使用命令行选项 -l 或其长形式 --left-column,您只能得到左列作为结果。
sdiff --left-column file1 file2
结论
Sdiff 工具提供了很多功能,但它的学习曲线并不那么陡峭。您需要做的只是一些练习,您应该可以开始了。我们在这里讨论了大多数命令行选项。有关更多信息,请访问 sdiffs 手册页。