免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: fcbqs1989
打印 上一主题 下一主题

[文本处理] 请问一下如何用awk合并下面2个文件 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2013-01-26 12:43 |只看该作者
回复 20# blackold


哦,我只是觉得这么做麻烦了点。

就想知道如果不这么做的话,怎么只匹配整数前面的数字。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
22 [报告]
发表于 2013-01-26 12:44 |只看该作者
回复 21# fcbqs1989


    贴样本数据和你期望的结果上来。

论坛徽章:
0
23 [报告]
发表于 2013-01-26 12:48 |只看该作者
回复 22# blackold

a文件:假设9行
   -0.2099959180E+05   -0.1377769434E+05    0.2908521973E+04
   -0.2100395312E+05   -0.1377825586E+05    0.2414533203E+04
   -0.2101968750E+05   -0.1377660352E+05    0.1169978394E+04
   -0.2102696094E+05   -0.1377540625E+05    0.6535144043E+03
   -0.2102911719E+05   -0.1377528027E+05    0.4944597168E+03
   -0.2103067969E+05   -0.1377558008E+05    0.3410320740E+03
   -0.2103094141E+05   -0.1377608398E+05    0.1918915710E+03
   -0.2102986719E+05   -0.1377638965E+05    0.4396041489E+02
    0.7123728027E+04    0.9766060547E+04   -0.5047572937E+03

b文件:假设有20行
   1.4448216e+04   1.6005722e+04  -3.9262439e+02   1.4055960e+03
   1.4331900e+04   1.5874306e+04  -4.0901535e+02   1.4022700e+03
  -2.0999592e+04  -1.3777694e+04   2.9085220e+03   3.3413230e+03
  -2.1003953e+04  -1.3778256e+04   2.4145332e+03   3.2103840e+03
  -2.1019688e+04  -1.3776604e+04   1.1699784e+03   2.9276980e+03
  -2.1029867e+04  -1.3776390e+04   4.3960415e+01   2.0452240e+03
   7.1237280e+03   9.7660605e+03  -5.0475729e+02   1.2656620e+03
   7.0791875e+03   9.7616992e+03  -4.8095721e+02   1.2861720e+03
   1.5090199e+04   1.6543979e+04  -2.6255927e+02   1.4291230e+03
   1.4995160e+04   1.6464502e+04  -2.8200320e+02   1.4257520e+03
   1.4900641e+04   1.6385096e+04  -3.0429150e+02   1.4218640e+03
   1.4803135e+04   1.6303332e+04  -3.2867023e+02   1.4175660e+03
   1.4638145e+04   1.6164753e+04  -3.6612805e+02   1.4107940e+03
   1.4478624e+04   1.6031237e+04  -3.5364948e+02   1.4122580e+03
   1.4524969e+04   1.6035997e+04  -3.8470682e+02   1.4072150e+03
   1.4543485e+04   1.6085526e+04  -3.8299408e+02   1.4076130e+03
  -2.1026961e+04  -1.3775406e+04   6.5351440e+02   2.6649160e+03
  -2.1029117e+04  -1.3775280e+04   4.9445972e+02   2.6068580e+03
  -2.1030680e+04  -1.3775580e+04   3.4103207e+02   2.6309410e+03
  -2.1030941e+04  -1.3776084e+04   1.9189157e+02   2.1027280e+03


希望得到的结果:9行
  -2.0999592e+04  -1.3777694e+04   2.9085220e+03   3.3413230e+03
  -2.1003953e+04  -1.3778256e+04   2.4145332e+03   3.2103840e+03
  -2.1019688e+04  -1.3776604e+04   1.1699784e+03   2.9276980e+03
  -2.1026961e+04  -1.3775406e+04   6.5351440e+02   2.6649160e+03
  -2.1029117e+04  -1.3775280e+04   4.9445972e+02   2.6068580e+03
  -2.1030680e+04  -1.3775580e+04   3.4103207e+02   2.6309410e+03
  -2.1030941e+04  -1.3776084e+04   1.9189157e+02   2.1027280e+03
  -2.1029867e+04  -1.3776390e+04   4.3960415e+01   2.0452240e+03
   7.1237280e+03   9.7660605e+03  -5.0475729e+02   1.2656620e+03

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
24 [报告]
发表于 2013-01-26 12:51 |只看该作者
回复 23# fcbqs1989


    这结果怎么来的?看起来和1楼的描述完全不同啊。

论坛徽章:
0
25 [报告]
发表于 2013-01-26 12:54 |只看该作者
回复 24# blackold


是一样的,只是好像不是整数。后面的结果是我用其他方法算出来的。计数法可能不太一样。其实是一样的。

2*10^8等于0.2*10^9

您只需要把前三列就当做a就行了。


论坛徽章:
0
26 [报告]
发表于 2013-01-26 12:55 |只看该作者
本帖最后由 fcbqs1989 于 2013-01-26 12:56 编辑

其实b就是打乱了的a。

b的前3列和a的前3列完全一样,只是顺序乱了而已。

现在就是要找到在每一行的a,对于的b的第四列的值

论坛徽章:
0
27 [报告]
发表于 2013-01-26 12:59 |只看该作者
我再写一个例子吧,现在把a和b的行数一样。

a:
11.11 2.2 2.3
12.11 2.3 1.2
13.12 3.1 2.5

b:
11.12 2.2 2.3 1.222
13.12 3.1 2.5 3.222
12.11 2.3 1.2 2.222

希望得到:
11.11 2.2 2.3 1.222  
12.11 2.3 1.2 2.222
13.12 3.1 2.5 3.222

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
28 [报告]
发表于 2013-01-26 12:59 |只看该作者
回复 25# fcbqs1989


    哦。

那还要考虑 正负的问题。

哪三列?

只是只是考虑前三列,不可以吧?因为还有指数的问题。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
29 [报告]
发表于 2013-01-26 13:02 |只看该作者
回复 27# fcbqs1989


    基本上明白你的意思。

   你这次的例子和上面的不同吧: 现在结果中的坐标来自a, 而前面的结果中坐标来自b。

论坛徽章:
0
30 [报告]
发表于 2013-01-26 13:07 |只看该作者
回复 29# blackold


27楼的例子就是我想要的,是的,还有正负的问题。

结果其实就是:
前3列来源于a,第四列来源于b。比如第一行的a, 我要做的就是在b中找到某一行的x,y,z和第一行的a基本一样,取出这一行的第四列的值。

其实a和b的前3列本质是一样的,只不过被打乱了(并行算法的后果。。。我不太会改并行code)。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP