Linux文件对比工具—comm/egrep/diff
2021-03-02 本文已影响0人
沉思的雨季
1、comm
带参数:
-1 不显示只在第1个文件里出现过的行。
-2 不显示只在第2个文件里出现过的行。
-3 不显示同时在第1和第2个文件里出现过的行。
comm对比的两个文件,要求先通过sort排序。不加参数时分“三列”显示,第一列是只存在于“第一个”文件中的内容,第二列是只存在于“第二个”文件中的内容,第三列是两个文件相同部分。
root@master # cat file1
a
b
c
root@master # cat file2
a
c
d
root@master # comm -12 file1 file2
a
c
2、egrep
egrep -f file1 file2 相当于 comm -12 file1 file2文件相同部分
root@master # egrep -f file1 file2
a
c
egrep -f file2 -v file1 相当于 comm -23 file1 file2 得到只存在于第一个文件中的部分
root@master # egrep -f file2 -v file1
b
egrep -f file1 -v file2 相当于 comm -13 file1 file2 得到只存在于第二个文件中的部分
root@master # egrep -f file1 -v file2
d
3、diff
diff可以比较两个文件,或者文件夹,着重于两个文件的相同部分和不同部分的统计。
diff -y file1 file2 | egrep -v '<|>||' | awk '{print $1}'得到两个文件相同部分
root@master # diff -y file1 file2|egrep -v '<|>|\|'|awk '{print $1}'
a
c
diff file1 file2 |grep '<'|awk '{print $2}'得到只存于第一个文件
root@master # diff file1 file2 |grep '<'|awk '{print $2}'
b
diff file1 file2 |grep '>'|awk '{print $2}'得到只存于第二个文件
root@master # diff file1 file2 |grep '>'|awk '{print $2}'
d