Is there a safe way to run a diff on two zip compressed files?

前端 未结 13 1044
长发绾君心
长发绾君心 2020-12-16 12:49

Seems this would not be a deterministic thing, or is there a way to do this reliably?

13条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-16 13:18

    I generally use an approach like @mrabbit's but run 2 unzip commands and diff the output as required. For example I need to compare 2 Java WAR files.

    $ sdiff --width 160 \
       <(unzip -l -v my_num1.war | cut -c 1-9,59-,49-57 | sort -k3) \
       <(unzip -l -v my_num2.war | cut -c 1-9,59-,49-57 | sort -k3)
    

    Resulting in output like so:

    --------          -------                                                       --------          -------
    Archive:                                                                        Archive:
    -------- -------- ----                                                          -------- -------- ----
    48619281          130 files                                                   | 51043693          130 files
        1116 060ccc56 index.jsp                                                         1116 060ccc56 index.jsp
           0 00000000 META-INF/                                                            0 00000000 META-INF/
         155 b50f41aa META-INF/MANIFEST.MF                                        |      155 701f1623 META-INF/MANIFEST.MF
     Length   CRC-32  Name                                                           Length   CRC-32  Name
        1179 b42096f1 version.jsp                                                       1179 b42096f1 version.jsp
           0 00000000 WEB-INF/                                                             0 00000000 WEB-INF/
           0 00000000 WEB-INF/classes/                                                     0 00000000 WEB-INF/classes/
           0 00000000 WEB-INF/classes/com/                                                 0 00000000 WEB-INF/classes/com/
    ...
    ...
    

提交回复
热议问题