2016-05-15 82 views
1

我使用diff获取两个文件,是否有一种方法可以格式化输出,以便可以说,文件名:Ascii在块大小:1000更改?而不是常规的输出,只是转储文件的所有更改。与diff比较并格式化输出

File A: 
    File Type: regular file 
    File Path: ./Secrets/711wasaparttimejob/Ascii 
    File Name: Ascii 
    Access Mode: -rw-r--r-- 
    Owner ID: 1000 
    Group ID: 1000 
    Block Size: 2311 
    Last Modified: 2016-05-13 13:38:52.904210046 +0000 
    Status Change: 2016-05-13 13:38:52.904210046 +0000 
    Last Access: 2016-05-15 10:38:58.015821340 +0000 
    MD5: 317ddabf4a1bd79c2ac491dba6634cb0 ./Secrets/711wasaparttimejob/Ascii 


    File B: 
    File Type: regular file 
    File Path: ./Secrets/711wasaparttimejob/Ascii 
    File Name: Ascii 
    Access Mode: -rw-r--r-- 
    Owner ID: 1000 
    Group ID: 1000 
    Block Size: 1000 
    Last Modified: 2016-05-13 13:38:52.904210046 +0000 
    Status Change: 2016-05-13 13:38:52.904210046 +0000 
    Last Access: 2016-05-15 10:38:58.015821340 +0000 
    MD5: 317ddabf4a1bd79c2ac491dba6634cb0 ./Secrets/711wasaparttimejob/Ascii 

回答

1

你可以重定向从diff命令的输出,然后用的grep -E使用正则表达式来搜索您想要输出的东西。

例如,我将您的文本粘贴到文件中。然后使用:

cat second.txt | grep -E "File Name|Block Size"         

打印出:

File Name: Ascii 
Block Size: 2311 
File Name: Ascii 
Block Size: 1000 

猫只是一个输出文件的所有内容。在你的情况下,cat second.txt将被diff命令替换。

git diff ... | grep -E "File Name|Block Size"