Unix diff --show-function-line 命令截断输出

3
我是一位翻译助手,以下是您需要翻译的内容:

我正在处理一些ldif文件的差异比较,每个部分都以“dn:leaf,branch3,branch2,branch1,root”开头。我想要显示每个部分的dn(可分辨名称),Unix diff实用程序有一个功能可以实现这一点:--show-function-line=regular expression。但是,diff工具会截断输出中的dn行,这使得很难知道完整路径。

当前命令:

diff -U 0 --show-function-line="^dn\: .*" file1.ldif file2.ldif > deltas.txt

示例输出:

@@ -56 +56 @@ dn: administratorId=0,applicationName=pl
-previousLoginTime: 20120619180751Z
+previousLoginTime: 20120213173659Z

原始DN:

dn: administratorId=0,applicationName=platform,nodeName=NODENAME

我希望输出包含整个原始行。有什么方法可以做到这一点吗?
谢谢, Rusty
1个回答

2

我通过编辑源代码并重新编译解决了这个问题。

在 src/context.c 文件中:print_context_function (FILE *out, char const *function)

修改了以下行:

for (j = i; j < i + 40 && function[j] != '\n'; j++)

为了

for (j = i; j < i + 100 && function[j] != '\n'; j++)

“40”限制了输出字符数为40个,因此我将其增加到100个,这应该足够满足我的需求。那个检查可能可以完全省略,只需检查function [j]!= '\n'即可,但我决定保持原样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接