Chinaunix

标题: 已经过滤出了md5码值,文件名对比 [打印本页]

作者: zl624867243    时间: 2019-01-11 11:15
标题: 已经过滤出了md5码值,文件名对比
已经过滤出了md5码值,git.txt(左边是md5,右边是文件名), 下载下来和本地的local_md5.txt 进行比较, 以git.txt 为标准把不相同的 或者少的文件 json输出,local_md5.txt 多出的文件不用输出


  1. 344d8adf7ab6d0593c3ac5388adb7a29   release_getv_daemon.sh
  2. df6e2bc25c696d670d23088d17bab381   release_nodejs.sh
  3. d54fc0df64931307d009c3c318358b69   model.xx.cn
  4. a2452c6643603265fc9cca812a6f2d77   port_view.sh
复制代码
local_md5.txt 如下:
  1. 62b0265123969b81df7f006641df334d   hosts_modify2.sh
  2. df6e2bc25c696d670d23088d17bab381   release_nodejs.sh
  3. 77190b42738bf1609ce2b058296408a7   ng_modify_config.sh
  4. 130296cd556dc851ae962ff03812ea60   kill_project_all_daemom_crontab.sh
  5. 375d2229c6da446ad8c3e67f348f5121   release_getv_nodejs.sh
  6. c6f748d35957cc447acc10e5ea4773cf   newrelease_rollback.sh
  7. b5069477e7a400a70c9a97b8c05a049c   release_delete_crontab.sh
  8. d36831df5f2a4e31e8616995e64a177e   release.sh
复制代码
想要的结果:
  1. {"change_file":{"value":"release_getv_daemon.sh,model.xx.cn,port_view.sh"}}
复制代码




作者: csccyab    时间: 2019-01-11 14:23
$ cat 1.txt
344d8adf7ab6d0593c3ac5388adb7a29   release_getv_daemon.sh
df6e2bc25c696d670d23088d17bab381   release_nodejs.sh
d54fc0df64931307d009c3c318358b69   model.xx.cn
a2452c6643603265fc9cca812a6f2d77   port_view.sh

$ cat local_md5.txt
62b0265123969b81df7f006641df334d   hosts_modify2.sh
df6e2bc25c696d670d23088d17bab381   release_nodejs.sh
77190b42738bf1609ce2b058296408a7   ng_modify_config.sh
130296cd556dc851ae962ff03812ea60   kill_project_all_daemom_crontab.sh
375d2229c6da446ad8c3e67f348f5121   release_getv_nodejs.sh
c6f748d35957cc447acc10e5ea4773cf   newrelease_rollback.sh
b5069477e7a400a70c9a97b8c05a049c   release_delete_crontab.sh
d36831df5f2a4e31e8616995e64a177e   release.sh

$ awk 'FNR==NR{md5[$2]=$1; next} {if ((md5[$2]!=$1)||(!md5[$2])) a?a=a","$2:a=a$2} END{printf "{\"change_file\":{\"value\":\"%s\"}}\n", a}' local_md5.txt 1.txt
{"change_file":{"value":"release_getv_daemon.sh,model.xx.cn,port_view.sh"}}
作者: 龙牙地主天    时间: 2019-01-11 17:26
回复 1# zl624867243

  1. [root@120 ~]# cat file2
  2. 62b0265123969b81df7f006641df334d   hosts_modify2.sh
  3. df6e2bc25c696d670d23088d17bab381   release_nodejs.sh
  4. 77190b42738bf1609ce2b058296408a7   ng_modify_config.sh
  5. 130296cd556dc851ae962ff03812ea60   kill_project_all_daemom_crontab.sh
  6. 375d2229c6da446ad8c3e67f348f5121   release_getv_nodejs.sh
  7. c6f748d35957cc447acc10e5ea4773cf   newrelease_rollback.sh
  8. b5069477e7a400a70c9a97b8c05a049c   release_delete_crontab.sh
  9. d36831df5f2a4e31e8616995e64a177e   release.sh
  10. [root@120 ~]#
  11. [root@120 ~]# cat file1
  12. 344d8adf7ab6d0593c3ac5388adb7a29   release_getv_daemon.sh
  13. df6e2bc25c696d670d23088d17bab381   release_nodejs.sh
  14. d54fc0df64931307d009c3c318358b69   model.xx.cn
  15. a2452c6643603265fc9cca812a6f2d77   port_view.sh
  16. [root@120 ~]#
  17. [root@120 ~]#
  18. [root@120 ~]#
  19. [root@120 ~]# awk 'NR==FNR{a[$1]=$2;next}{if(!a[$1]) b=b?b","$2:$2}END{print "{\042change_file\042:"value"{\042value\042:\042"b"\042}}"}' file2 file1
  20. {"change_file":{"value":"release_getv_daemon.sh,model.xx.cn,port_view.sh"}}
  21. [root@120 ~]#
复制代码


作者: zl624867243    时间: 2019-01-13 09:34
本帖最后由 zl624867243 于 2019-01-13 09:38 编辑

回复 3# 龙牙地主天我是这样改不知道有没有漏洞

  1. change_file=$(grep -v -f local_md5.txt git.txt |awk '{print $NF}'|xargs| tr ' ' ',')
  2. change_file='{"value":"'$change_file'","status":"true","msg":"ok"}
  3. echo $change_file
复制代码


作者: zl624867243    时间: 2019-01-13 09:37
回复 2# csccyab 我是这样改不知道有没有漏洞

  1. change_file=$(grep -v -f local_md5.txt git.txt |awk '{print $NF}'|xargs| tr ' ' ',')
  2. change_file='{"value":"'$change_file'","status":"true","msg":"ok"}
  3. echo $change_file
复制代码






欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2