Chinaunix首页 | 论坛 | 博客
  • 博客访问: 793520
  • 博文数量: 858
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-29 17:43
文章分类

全部博文(858)

文章存档

2011年(1)

2008年(857)

我的朋友

分类: LINUX

2008-08-29 17:56:30

 
例一:我要比较a和b两个文件并列出b文件中完全不包含a文件的行;
cata
2
3
4
1
D1
D2

catb
2
3
d2
d3
df
jd2
jd3
D1
D12
D2f
方法一:diffab
方法二:
awk''ARGIND==1{a[$0]}#ifARGIND=1初始化(或叫做定义)a[$0]
ARGIND>1&&!($0ina){print$0}''ab#ifARGIND>1并且a[$0]未定义,则打印$0
#ARGIND==1判断是否正在处理第一个文件,本例为文件a
#ARGIND>1判断是否在处理第二个或第n个文件,本例只有一个文件b

方法二主要是处理b文件和a文件的顺序不同,不能用diff比较,b基本上包含a的所有内容,但比a大的多,怎样将b中不包含a的内容列出来。awk处理多个文件的机制是按照文件名出现的顺序依次处理

例二:如果我的两个文件的格式不同如下.
a文件格式
10001|49|29
10002|454|sfd
10003|88a|34
10004|aaab|111

b文件格式
10002
10006
10008

我想实现这样功能:如果a文件中某行第一个字段的值在b文件有,则删掉这行
使用代码:awk-F"|"''NR==FNR{a[$0]}NR!=FNR&&!($1ina){print$0}''ba

linux下两个比较文件不同的例子linux下两个比较文件不同的例子linux下两个比较文件不同的例子linux下两个比较文件不同的例子linux下两个比较文件不同的例子linux下两个比较文件不同的例子linux下两个比较文件不同的例子linux下两个比较文件不同的例子linux下两个比较文件不同的例子linux下两个比较文件不同的例子
阅读(1041) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~