【linux】【shell】 比较两个目录下的文件

来源: https://www.linuxidc.com/Linux/2018-05/152536.htm

 

[root@pz_ne-oltp-etl-vm1 compare]# rsync -rvn -i --delete 20200113/ 20200114 | sed -n '2,/^$/{/^$/!p}'
*deleting NEEQ_J0030_V01_20200114_01_Q_00.TXT ----- 20200114 含有 而 13日文件没有的
*deleting 14.txt
>f+++++++++ 13.txt -------- 20200113 目录含有 ,而14日文件没有的
>f.sT...... NEEQ_F0001_V01_20200114_01_Z_00.ZIP ---------- 其他大多数文件 为
>f.sT...... NEEQ_F0002_V01_20200114_01_Z_00.ZIP
>f.sT...... NEEQ_J0002_V01_20200114_01_Q_00.TXT
>f.sT...... NEEQ_J0007_V01_20200114_01_Q_00.TXT
>f.sT...... NEEQ_J0008_V01_20200114_01_Z_00.TXT
>f.sT...... NEEQ_J0009_V01_20200114_01_Q_00.TXT
>f.sT...... NEEQ_J0010_V01_20200114_01_Z_00.TXT
>f..T...... NEEQ_J0011_V01_20200114_01_Z_00.TXT -------- 两个目录都有 ,且文件相同
>f.sT...... NEEQ_J0015_V01_20200114_01_Z_00.TXT
>f.sT...... NEEQ_J0018_V01_20200114_01_Z_00.TXT

>f+++++++++ NEEQ_J0030_V01_20200115_01_Q_00.TXT

${left_dir}
${right_dir}

sed -i 's/*deleting/${left_dir}/g' ${list_file}
sed -i 's/>f+++++++++/${right_dir}/g'
sed -i 's/>f..T....../same_file_same_content/g'
sed -i 's/>f.sT....../same_name_but_diff_content/g'

 


## 另一种方式就是 只查看 文件名称的区别 ,而不关注内容是否有区别


[root@pz_ne-oltp-etl-vm1 compare]# find 20200113 -printf "%P\n" | sort > file1
[root@pz_ne-oltp-etl-vm1 compare]# find 20200114 -printf "%P\n" | sort > file2
[root@pz_ne-oltp-etl-vm1 compare]# diff file1 file2

posted @ 2020-01-16 14:36  allen514519  阅读(736)  评论(0)    收藏  举报