在unix中也可以对它上面的第n行进行两个文件和第n行的打印输出

时间:2017-08-03 08:51:08

标签: shell unix diff aix

我们有两个文件,其中我想要差异并打印该行,第四行在该差异线之上。 例如,在这种情况下,diff在具有debug的行之间:ON / OFF,我想打印具有值“AR1LogHandler.properties”的行。

文件1 ----

<configuration-file name="**AR1LogHandler.properties**">                                                                                     
<parameters>                                                                                                       
<parameter name-path="system.severity" 
value="fatal:yes;error:yes;information:yes;**warning:yes;debug:yes**" 
sticky="true" exists="true"/>                                                                                                
</parameters>                                                                                   
</configuration-file>

文件2 ---

<configuration-file name="**AR1LogHandler.properties**">                                                                                       
<parameters>                                                                                                        
<parameter name-path="system.severity" 
 value="fatal:yes;error:yes;information:yes;**warning:no;debug:no**" 
 sticky="true" exists="true"/>                                                                                                
</parameters>                                                                                        
</configuration-file>

1 个答案:

答案 0 :(得分:0)

您可以使用difftailsed的hackish组合来仅选择第一行和更改的行,例如

$ diff -uNb -B3 df1 df2 | tail -n +4 > tmp && \
  sed '0,/^[ ]/!d' tmp && \
  sed '/^[^-+]/d' tmp && rm tmp
 <configuration-file name="**AR1LogHandler.properties**">
-value="fatal:yes;error:yes;information:yes;**warning:yes;debug:yes**"
+value="fatal:yes;error:yes;information:yes;**warning:no;debug:no**"

不漂亮,但保留显示属性的第1行,然后保留文件中的更改内容。