【问题标题】:unix diff --show-function-line truncates outputunix diff --show-function-line 截断输出
【发布时间】:2012-06-28 04:06:44
【问题描述】:

我正在处理一些 ldif 文件,其中每个部分都以“dn:leaf,branch3,branch2,branch1,root”开头我希望显示每个部分的 dn(可分辨名称)和 Unix 差异实用程序具有执行此操作的功能:--show-function-line=正则表达式。但是,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: administratorId=0,applicationName=platform,nodeName=NODENAME

我希望整个原始行都包含在输出中。有没有办法做到这一点?

谢谢, 生锈

【问题讨论】:

    标签: unix diff truncate


    【解决方案1】:

    我通过编辑源代码并重新编译解决了它。

    在 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',但我决定保持原样。

    【讨论】:

      猜你喜欢
      • 2014-06-22
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多