我正在努力扩展一些ldif文件,其中每个部分以“dn:leaf,branch3,branch2,branch1,root”开头我想要显示每个部分的dn(可分辨名称)和Unix差异实用程序有一个功能: - show-function-line =正则表达式。但是,diff util会截断输出中的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
我希望整个原始行包含在输出中。有没有办法做到这一点?
谢谢, 生锈的
答案 0 :(得分: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,这应该足够大以满足我的需要。那个检查可能完全省略,让它只检查函数[j]!='\ n',但我决定保留原样。