linux下文件对比工具详解(diff、diff3、sdiff、vimdiff和comm) | 您所在的位置:网站首页 › Linux命令diff文件有空行 › linux下文件对比工具详解(diff、diff3、sdiff、vimdiff和comm) |
工具概述(主要是sdiff和diff): ################################################################################################################# 文件对比:用此方法和新配置文件进行对比,看下需要在新的配置文件上修改哪些东西,这个很实用哦 diff -ab /usr/local/b09/bms/coship-bms/bms/conf/bms-config.xml /usr/local/b09_2/BMS/coship-bms/bms/conf/bms-config.xml (没那么直观) sdiff -abls -w 168 /usr/local/b09/bms/coship-bms/bms/conf/bms-config.xml /usr/local/b09_2/BMS/coship-bms/bms/conf/bms-config.xml (仅显示不同的内容,直观) sdiff -abl -w 168 /usr/local/b09/bms/coship-bms/bms/conf/bms-config.xml /usr/local/b09_2/BMS/coship-bms/bms/conf/bms-config.xml (更直观显示不同的地方)
#############################################################################################################################
以下详细讲解:
cmp 比较两个文件,并指出它们是否不同及不同的字节。 diff 比较两个文件或目录,并指出哪些文件的哪些行不同。 diff3 逐行比较三个文件。 sdiff 合并两个文件,并以交互方式输出结果。 vimdiff 使用vim同时编辑一个文档的2或3个版本并显示他们的区别使用。 comm 一行一行对两个已经排序的文件进行比较,在第三列中显示同一行是否相同。 linux diff sdiff 找目录和文件的差异: 记录下俺自己习惯的用法: diff -rq /root/Launcher/src/com/android/launcher /work/Launcher/src/com/android/launcher 这条命令会列出两个目录(及其子目录)下有差异的文件名称。两个参数的作用分别是: -q: 仅显示有无差异,不显示详细的信息; -r: 递归比较子目录中的文件。 sdiff -s /work/Launcher2/src/com/android/launcher2/Workspace.java /root/src/launcher2/Workspace.java sdiff -l /work/Launcher2/src/com/android/launcher2/Workspace.java /root/src/launcher2/Workspace.java 这两个命令都用来比较两个文件。两个参数的作用分别是: -l 相同的行只输出在结果的左边(右边则只显示与左边有差异的行的内容); -s 不显示相同的行(分两栏显示有差异的行的内容).
sdiff 命令 用途 比较两个文件并以并排的格式显示差别。 语法 sdiff [ -l | -s ][ -o OutFile] [ -w Number ]File1 File2 描述 sdiff 命令读取由 File1 和File2 参数指定的文件,使用diff命令比较二者,并将结果以并排格式写到标准输出中。如果行相同,那么 sdiff 命令就会显示两个文件的每一行,其间有一系列的空格。如果行只存在于File1 参数指定的文件中,那么在空白字段里就会显示 (大于号),如果两行不同就显示 |(竖线)。 当您指定了 -o 标志时,sdiff 命令就会将 File1 和 File2参数指定的文件合并,产生第三个文件。 注:sdiff 命令调用 diff -b 命令来比较两个输入文件。-b 标志会引起 diff 命令忽略尾随空格和制表符,并将其它空格字符串视为相同。 标志 -l 当行相同时只显示左侧。 -o OutFile 通过将 File1 和 File2 参数指定的两个文件在受控下逐行合并,来创建 OutFile 变量指定的第三个文件。以下子命令管理该文件的创建: e 以空文件开始 ed 命令。 e b or e | 从两侧开始 ed 命令。 e l or e 从右侧开始 ed 命令。 l 将左侧添加到输出文件。 r 将右侧添加到输出文件。 s 停止显示相同的行。 v 开始显示相同的行。 q 执行以下功能之一: · 退出 ed 命令。 · 如果没有运行 ed 命令,则退出 sdiff 命令。 · 退出两条命令。不再有合并至输出文件的行时,执行该操作。 每次退出 ed 命令时,sdiff 命令将作为结果的已编辑文件写到 OutFile 变量指定的文件结尾。如果您在退出之前没有保存更改(例如,按下 Ctrl-C 按键顺序),那么 sdiff 命令将初始的输入写到输出文件中。 -s 不显示相同的行。 -w Number 设置输出行的宽度。Number 变量的缺省值是 130 个字符。Number 变量的最大宽度是 2048。Number 变量的最小宽度是 20。如果指定的值大于 2048,那么 sdiff 命令使用 2048。 示例 要打印两个文件的比较,请输入:sdiff chap1.bak chap1 sdiff 命令显示并排的列表,它比较 chap1.bak 和 chap1 文件的每行。 要只显示不同的行,请输入:sdiff -s -w 80 chap1.bak chap1 sdiff 命令在工作站显示差别。 -w80 标志和变量将页宽设置为 80 列。 -s 标志表示不显示两个文件中相同的行。 要有选择地组合两个文件的部分,请输入:sdiff -s -w 80 -o chap1.combo chap1.bak chap1 sdiff 命令将 chap1.bak和 chap1 文件组合成名为 chap1.combo 的新文件。对于每组不同的行,sdiff 命令会提示您保持哪个组或是否想使用 ed 命令来对其进行编辑。 要组合和编辑两个文件(staff.jan 和 staff.apr),并将结果写到 staff.year 文件中,请执行标明的步骤。staff.jan 文件包含以下行: 会计部门成员 Andrea George Karen Sam Thomas staff.apr 文件包含以下行: 会计部门成员 Andrea Fred Mark Sam Wendy 请输入以下命令:sdiff -o staff.year staff.janstaff.apr sdiff 命令会开始比较 staff.jan和 staff.apr 文件的内容,并将结果写到 staff.year文件中。sdiff 命令显示以下内容: 会计部门成员 会计部门成员 Andrea Andrea George | Fred % %(百分号)是命令提示符。 输入 e b 子命令以开始使用 ed 命令编辑输出文件。sdiff 命令显示数字序列,它表示合并的行的字节数。在这种情况下,字节数是23。 输入 q 子命令以退出 ed 命令,并继续组合和编辑这两个文件。 sdiff 命令显示以下内容:d. Sam Sam e. Thomas | Wendy 请再次输入 e b 子命令。每当两个原始文件的一组行合并成输出文件时,必须运行 ed 命令。在本例中的字节数是 13。请输入 q 子命令来保存更改。当将两个文件的所有行都合并成输出文件时,q 子命令退出 ed 和 sdiff 命令。 现在 staff.year 文件包含以下内容: 会计部门成员 Andrea George Karen Fred Mark Sam Thomas Wendy 文件 /usr/bin/sdiff 包含 sdiff 命令。
|
CopyRight 2018-2019 实验室设备网 版权所有 |