diff 比较两个文件的问题。。。

jackxiang 2008-11-6 19:10 | |
diff 用过吗?老大让我a.log b.log 比较出相同,后将相同从a.log中去掉,然后显示出剩下的放入到文件x.log

==> a.log <==
1
3
2

==> b.log <==
5
4
2
3


sort a.log >> aa.log
sort b.log >> bb.log
diff aa.log bb.log |grep "<" >> x.log
//还好老大给出了这个比较方法。。

[code]diff aa.log bb.log 结果如何记忆?  <:表示a独特有的,>:表示b独特有的!


aa.log中有1在bb.log中没有,于是<1,同样:bb.log有4,5在aa.log中没有,于是:>4 >5  :
[~]# diff aa.log bb.log                  
1d0
< 1
3a3,4
> 4
> 5
[/code]
假设文件有5列,我想按照第3列排序应该怎么使用sort命令呢?
sort -k 3 yourfile.txt


我现在写shell统计遇到一个问题, 比如一个文件a里是
1,02
2,05
这种格式
另一个文件b里是
3,02
5,05
这种格式,我想让如果a b 逗号后面(02或05)的相同的话, 则把 b的 逗号前面的(3或5) 放在 a 对应的后面
怎么做啊?
awk -F, 'NR==FNR{a[$2]=$1}NR>FNR{print $0","a[$2]}' fileb filea





我们再来个示例:
文件:a.txt b.txt

cat a.txt
[root@vm19 diff]# cat a.txt
asp
php
jsp
csp
zzz

cat b.txt
[root@vm19 diff]# cat b.txt
jsp
php
asp
csp
java
c
python

排序a.txt b.txt
sort b.txt >>bbb.txt
sort a.txt >>aaa.txt

[root@vm19 diff]# cat aaa.txt
asp
csp
jsp
php
zzz



[root@vm19 diff]# cat bbb.txt
asp
c
csp
java
jsp
php
python
diff一下:

[root@vm19 diff]# diff bbb.txt aaa.txt
2d1
< c
4d2
< java
7c5
< python
---
> zzz



找出bbb.txt和aaa.txt中bbb.txt和aaa.txt中多余的程序语言
diff bbb.txt aaa.txt|grep -r "<"
[root@vm19 diff]# diff bbb.txt aaa.txt|grep -r "<"
< c
< java
< python
找出bbb.txt和aaa.txt中bbb.txt和aaa.txt比较中bbb.txt中没有的
[root@vm19 diff]# diff bbb.txt aaa.txt|grep -r ">"
> zzz


一个语句完成也行:但是注意取出空行空格:
diff <(sort -n a.txt) <(sort -n b.txt)

=============================================
PS技巧:
如何过滤掉 “< ”

diff a.txt b.txt |grep "<"|awk -F"< " '{print $2}' > ddd.txt


务必参考:http://www.jackxiang.com/post/3484/

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/1370/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2010-9-13 18:33
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]