对于文件比较命令diff,仅比较文本的文件比较需要哪些选项?
我的意思是我想忽略所有空格、制表符、换行符等。
我一直在尝试不同的选择,但未能达到预期的结果。
我使用 vim-fugitive 插件来检查 git diff。突出显示代码更改的配色方案与我的日光背景不相称。我看不到更改 Gdif 颜色方案的命令。谁能帮我改变配色方案?
我有文件a:
This
file
does
have
an error
in it
that
needs
to be
fixed.
Run Code Online (Sandbox Code Playgroud)
和一个类似的文件b:
This
file
does
have
no error
in it
that
needs
to be
fixed.
Run Code Online (Sandbox Code Playgroud)
我可以使用以下命令创建统一的差异diff -u a b:
--- a 2018-01-03 14:20:22 +0100
+++ b 2018-01-03 14:20:37 +0100
@@ -2,7 +2,7 @@
file
does
have
-an error
+no error
in it
that
needs
Run Code Online (Sandbox Code Playgroud)
我还可以使用以下命令将上下文减少到两侧的一行diff -u1 a b:
--- a 2018-01-03 14:20:22 +0100
+++ b 2018-01-03 14:20:37 +0100
@@ …Run Code Online (Sandbox Code Playgroud) 有没有办法将差异输出通过管道传输到patch?-i 参数用于指定 diff 文件,但我只想更动态地执行此操作,因为我将针对频繁更改的目录定期更新。
对于 instacne,类似的东西
patch -b | diff -Nub . /current-files
Run Code Online (Sandbox Code Playgroud)
?
人文件说
-i patchfile or --input=patchfile
Read the patch from patchfile. If patchfile is -, read from standard input, the default.
Run Code Online (Sandbox Code Playgroud)
但是当我尝试时,我只是在屏幕上看到 diff 的输出,没有应用任何更改:
testb $> ls
file.txt
testb $> patch -i - | diff -Nub . ../testa
diff -Nub ./file.txt ../testa/file.txt
--- ./file.txt 2011-07-12 09:40:08.195467000 -0400
+++ ../testa/file.txt 2011-07-12 09:39:11.181666500 -0400
@@ -1,9 +1,7 @@
ijaosdfji
jaiosdfjio
jklasdkml
-asdkml
-s;lnk
-lsadjkl
-asdfas
-asdf
+klasdkml …Run Code Online (Sandbox Code Playgroud) 我正在尝试计算两个awk命令的输出之间的差异,但我对它的简单尝试似乎失败了。这是我正在尝试的:
diff $(awk '{print $3}' f1.txt | sort -u) $(awk '{print $2}' f2.txt | sort -u)
Run Code Online (Sandbox Code Playgroud)
由于我不知道的原因,这不起作用。我假设$()构造用于捕获另一个命令的输出,但我的“差异”调用无法识别给它的两个输入。有什么办法可以让我完成这项工作。
顺便说一句,鉴于我登录到没有“写入”权限的生产框,我无法使用将这两个命令的输出写入分隔文件的明显解决方案。
我想制作一个更新配置文件的 shell 脚本。
服务器上的文件包含信息,例如各种 IP 地址。
新文件有更多代码,从添加到系统的新配置开始,我希望能够将这些新配置添加到服务器文件中,而无需更改那里已经配置的内容
例子:
服务器文件
[config]
ip=127.0.0.1
port=22
Run Code Online (Sandbox Code Playgroud)
新文件
[config]
ip=XXX.XXX.XXX.XXX
port=XX
user=root
Run Code Online (Sandbox Code Playgroud)
我希望生成的文件是
[config]
ip=127.0.0.1
port=22
user=root
Run Code Online (Sandbox Code Playgroud)
怎么会是一个好方法呢?我不想依赖行位置等,因为实际的配置文件非常大,并且可以将更多行添加到服务器文件中。
我试图对文件进行差异化并应用补丁,但没有奏效。
谢谢你的帮助。
在 Emacs 中,如何检查缓冲区中已修改的内容(在保存和覆盖文件之前)?
(从某种意义上说,请求的动作是模拟git status并git add -i显示已修改的内容,只应在缓冲区内容(在 Emacs 的内存中)和磁盘上的文件之间进行比较。)
有时候,我忘记了缓冲区中修改了什么,想调用一个命令来提醒我。
我正在尝试编写一个脚本来从 5 个不同的地方获取信息并比较它们的差异。这些信息只是 IP 地址,我将它们放在文本文件中。我正在使用:
diff --from-file file1 file2 file3 file4 file5
Run Code Online (Sandbox Code Playgroud)
比较它们并且它有效,但我需要显示哪个文件包含不同的信息。我希望只有一个或最多两个文件不匹配。
我必须比较两个文件,file1 和 file2。每个文件有 56 列,以|. 第一列是文件中的员工编号,我将检查第二个文件中是否存在相同的员工编号。如果不是,我们会将整行写入输出文件。如果 file2 中存在相同的员工编号,我需要比较每列的值。如果数据不匹配,我们必须将其写入输出文件。如果每列的值匹配,那么我们需要省略该记录。
示例文件
文件 1
2620|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality and Wipro Way|||
2623|256034|131021|Mission Quality and Wipro Way|||
Run Code Online (Sandbox Code Playgroud)
档案 2
2620|256034|234567|Mission Quality and Wipro Way|||
2621|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality|||
2623|256034|131021|Mission Quality and Wipro Way|||
Run Code Online (Sandbox Code Playgroud)
示例输出:
2620|256034|131021|Mission Quality and Wipro Way|||
2621|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality|||
Run Code Online (Sandbox Code Playgroud) 是否有工具(或diff选项组合)会产生类似于git diff --stat?
我有两个内核源代码,我想大致了解其中的更改内容。显示所有更改的行是一种矫枉过正,我想要一个简单的
file_name1 <number of changes>
file_name2 <number of changes>
...
摘要。