linux比较两个文本文件并输出

经常遇到要比较两个文本文件的问题,文件行数很多,用excel在自己电脑上做会很卡,想在linux服务器上做。比如文件1和文件2都是每行一串字符,要选出相同的行输出到same.txt,文件1中有,文件2中没有输出到_1_not_in_2.txt,文件2中有,文件1中没有的输出到_2_not_in_1.txt。用什么办法可以做到,比如脚本,是否可以在while read line的循环中用一行命令实现呢?
不要输出别的东西,也不要实时查看,我我是要处理大文件,直接输出到3个文件中,我只要这3个文件就行了,最好在循环中每次处理就可以分别输出,也不用分三次处理,这样效率高些

diff -u a.txt b.txt|grep '^-' |grep -v '^---' > '_1_not_in_2.txt'

diff -u a.txt b.txt|grep '^+' |grep -v '^+++' > '_2_not_in_1.txt'

diff -u a.txt b.txt|grep '^ ' > same.txt

这是区别出三个文件的命令,把上面的命令运用到脚本里面就可以高效使用了。

脚本:

[root@bogon diff]# sh diff.sh 

Please input a name for file1 :file1

Please input a name for file2 :file2


温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答