jld*_*ger 15 linux configuration diff
我有两个 snmpd.conf 文件,一个在可以工作的服务器上,一个在不工作的服务器上。如何在删除不相关的注释和换行符的同时区分两个配置文件?
rgm*_*cha 19
如果您对vim有点熟悉,我强烈建议您使用vimdiff:
vimdiff file1 file2
Run Code Online (Sandbox Code Playgroud)
这将打开一个带有两个窗格的 vim 会话,每侧一个文件。突出显示和颜色将指示文件之间的差异,并且所有相同的部分都将被隐藏(折叠但可展开)。
然后,如果要选择性地将一个文件的差异合并到另一个文件,可以使用以下命令:
(将“当前文件”视为光标所在的文件)
^W^W 将焦点从一个文件的窗口更改为另一个文件的窗口
]c 前进到有差异的下一个块
[c 反向搜索前一个有差异的块
做 (d IFF Ø btain)把从其他文件更改到当前文件
DP (d IFF p UT)发送从当前文件的变化到另一个文件
注意:如果你在一个块上或者在一个块下只有一行,do和dp都可以工作。
你 对你做
zo 展开/取消隐藏文本
zc重新折叠/重新隐藏文本
zr将完全展开两个文件(使用:help fold了解有关折叠的更多信息)
:diffupdate将重新扫描文件以进行更改
当您开始移动更改的文本或引入更改时,文件中现在相同的部分也会自动折叠。
完成后,您可以退出并使用:xa写入这两个文件!
您还可以一次编写、退出、放弃更改等,就像您通常使用 vim 所做的那样,一次一个窗格。
你可以使用所有常用的vim命令随意编辑文件;我只描述了您可能在 vimdiff 会话中使用的最常见和最有用的命令(与通用 vim 会话相反)。
Xer*_*xes 15
diff <(grep -v '^#' f1) <(grep -v '^#' f2)
Run Code Online (Sandbox Code Playgroud)
为了避免空行和只包含空格的行,除了添加前导空格具有单一差异的相同行...
diff -b \
<(grep -vE '^([ \t]*#|^[ \t]*$)' f1)\
<(grep -vE '^([ \t]*#|^[ \t]*$)' f2)
Run Code Online (Sandbox Code Playgroud)
尽管如此,我可能会将其放入脚本并编写类似于原始建议的内容,这样更易读。
Beyond Compare 是这方面的终极工具!
链接:http : //www.scootersoftware.com/
适用于 Windows 和 Linux。
杰夫不久前写了一篇关于该工具的很好的概述文章:http :
//www.codinghorror.com/blog/archives/000454.html
扩展 nima 的单行代码,您可以将其作为 shell 函数执行并将其放入您的 .bashrc
diff <(grep -v '^#' f1) <(grep -v '^#' f2)
Run Code Online (Sandbox Code Playgroud)
变成(使用 -u 因为我喜欢统一差异)
function cleandiff {
diff -u <(grep -v '^#' $1| grep -v '^ *$') <(grep -v '^#' $2 | grep -v '^ *$')
}
Run Code Online (Sandbox Code Playgroud)
如果您喜欢 GUI 差异查看器,meld 很好,并且了解修订控制的目录/文件。
归档时间: |
|
查看次数: |
13504 次 |
最近记录: |