Chinaunix

标题: 请教一个数据匹配的问题 [打印本页]

作者: pdzcowboy    时间: 2014-01-22 09:32
标题: 请教一个数据匹配的问题
我有两列数据如下:  
124        A00300
125        A00221
126        A00265
127        A00229
128        C00420
129        C00225
130        C00224
131        C00287
132        C00290
133        C00262
134        A01644
135        A01686
136        A01675
137        A01628
138        A01616
139        A01701
140        E00007
141        E00102
142        E00053
143        E00013
144        E00120
145        E00028
146        E00093
147        E00008
148        D01510
我知道第二列的部分数据,如下:
A00265
C00420
C00262
A01616
E00053
E00028
D01510
D01346
D01364
D01499
J00171
C00213
C01893
请教有没有简单一点的方法,寻找给出的第二列数据对应的第一列的数据?

作者: jason680    时间: 2014-01-22 09:39
本帖最后由 jason680 于 2014-01-22 09:40 编辑

回复 1# pdzcowboy

1. grep
$ grep -f F1 F2
126        A00265
128        C00420

2. awk
$ awk 'FNR==NR{a[$2]=$1}NR>FNR{print $1,a[$1]}' F2 F1
A00265 126
C00420 128

$ cat F2
125        A00221
126        A00265
127        A00229
128        C00420
129        C00225
130        C00224

$ cat F1
A00265
C00420

   
作者: HH106    时间: 2014-01-22 09:48
本帖最后由 HH106 于 2014-01-22 09:48 编辑

回复 1# pdzcowboy
修改下2楼
grep -Ff f1 f2

awk 'NR==FNR{a[$2]=$1;next}{print $1,a[$1]}' f2 f1
   
作者: Shell_HAT    时间: 2014-01-22 09:51
  1. grep -xFf file1 file2
复制代码

作者: rulebook    时间: 2014-01-22 09:53
  1. grep -f i o | awk '{print $1}'
复制代码

作者: zhaopingzi    时间: 2014-01-22 09:57
这种问题,论坛里很多啊
作者: pdzcowboy    时间: 2014-01-22 10:02
谢谢各位了
作者: li0924    时间: 2014-01-22 10:21
本帖最后由 li0924 于 2014-01-22 10:27 编辑

@HH106@jason680
假如第2列在第1列没有对应的呢?这个你们没考虑。----
作者: jason680    时间: 2014-01-22 11:05
回复 8# li0924

Would you provide good idea for it? thank you!!!
   
作者: pitonas    时间: 2014-01-22 11:11
谢谢各位了 {:2_172:}
作者: pdzcowboy    时间: 2014-01-22 11:14
我按照grep -Ff file1name file2name执行,系统没报错,但是没有结果怎么?

回复 4# Shell_HAT


   
作者: li0924    时间: 2014-01-22 15:42
回复 9# jason680
  1. awk 'NR==FNR{a[$0]=1;next}a[$2]' F2 F1
复制代码

作者: elu_ligao    时间: 2014-01-22 22:33
  1. grep -f f2 f1
  2. awk 'NR==FNR{a[$1]++;next}a[$2]' f2 f1
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2