免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5835 | 回复: 10
打印 上一主题 下一主题

[文本处理] 请教如何提取第五列包含关键词,第三列不包含关键词,且第二列和第四列相等的行 [复制链接]

论坛徽章:
1
2015亚冠之首尔
日期:2015-11-03 18:40:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2021-11-08 14:52 |只看该作者 |倒序浏览
源文件如下:
     1 100000 1096203 1096834 NH L=3.5e-07 W=4.2e-07
     1 100002 VSS 1096834 NH L=3.5e-07 W=4.2e-07
     1 abc 1096207 abc NH L=3.5e-07 W=4.2e-07
     3 100006 1096209 1096834 NH L=3.5e-07 W=4.2e-07

     1 NH 1096207 abc PH L=3.5e-07 W=4.2e-07
     2 100006 NHFF 1096834 FH L=3.5e-07 W=4.2e-07


提取条件:
1,第五列为关键词NH且第三列为关键词VSS
2,第五列为关键词NH且第三列不是关键词VSS且第二列和第四列字符串相同

提取后的文件如下:
     1 100002 VSS 1096834 NH L=3.5e-07 W=4.2e-07
     1 abc 1096207 abc NH L=3.5e-07 W=4.2e-07


非常感谢大神们的帮助。

论坛徽章:
1
2015亚冠之首尔
日期:2015-11-03 18:40:52
2 [报告]
发表于 2021-11-08 16:46 |只看该作者
补充一下,还需要把第六列和第七列的科学计数法转化成数字格式。
提取结果如下:
     1 100002 VSS 1096834 NH L=0.35 W=0.42
     1 abc 1096207 abc NH L=0.35 W=0.42

论坛徽章:
6
15-16赛季CBA联赛之浙江
日期:2021-07-14 11:18:4315-16赛季CBA联赛之浙江
日期:2021-08-20 17:26:1015-16赛季CBA联赛之天津
日期:2021-09-01 10:56:4619周年集字徽章-19
日期:2021-10-12 11:08:032016科比退役纪念章
日期:2021-10-12 11:33:4515-16赛季CBA联赛之深圳
日期:2021-11-11 14:25:38
3 [报告]
发表于 2021-11-08 17:01 |只看该作者
回复 2# jiawei2426

你这个科学计数法的转换,是什么规律

论坛徽章:
1
2015亚冠之首尔
日期:2015-11-03 18:40:52
4 [报告]
发表于 2021-11-08 17:07 |只看该作者
回复 3# a5love3n

就是 乘以 e+06,然后以十进制数字的形式显示

论坛徽章:
6
15-16赛季CBA联赛之浙江
日期:2021-07-14 11:18:4315-16赛季CBA联赛之浙江
日期:2021-08-20 17:26:1015-16赛季CBA联赛之天津
日期:2021-09-01 10:56:4619周年集字徽章-19
日期:2021-10-12 11:08:032016科比退役纪念章
日期:2021-10-12 11:33:4515-16赛季CBA联赛之深圳
日期:2021-11-11 14:25:38
5 [报告]
发表于 2021-11-08 17:29 |只看该作者
回复 4# jiawei2426

  1. awk -F'[-= e]' '$5~/NH/&&$3~/VSS/{printf $1" "$2" "$3" "$4" "$5" "$6"=%s "$10"=%s\n",$7/(($9-6)*10),$11/(($13-6)*10)}$5~/NH/&&$2==$4{printf $1" "$2" "$3" "$4" "$5" "$6"=%s "$10"=%s\n",$7/(($9-6)*10),$11/(($13-6)*10)}' 1.txt
复制代码
我了解的awk不认识科学计数法,期待有大神写出更简洁的

论坛徽章:
25
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之八一
日期:2018-07-05 10:34:09黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:3315-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之广夏
日期:2018-08-08 19:31:5015-16赛季CBA联赛之青岛
日期:2018-11-26 15:21:5015-16赛季CBA联赛之上海
日期:2018-12-11 09:45:3219周年集字徽章-年
日期:2020-04-18 23:54:5215-16赛季CBA联赛之深圳
日期:2020-04-19 21:40:19黑曼巴
日期:2022-04-03 17:55:1315-16赛季CBA联赛之八一
日期:2018-07-03 16:56:46
6 [报告]
发表于 2021-11-08 17:31 |只看该作者
本帖最后由 wh7211 于 2021-11-08 18:24 编辑

回复 1# jiawei2426


  1. cat 1
  2. 1 100000 1096203 1096834 NH L=3.5e-07 W=4.2e-07
  3. 1 100002 VSS 1096834 NH L=3.5e-07 W=4.2e-07
  4. 1 abc 1096207 abc NH L=3.5e-07 W=4.2e-07
  5. 3 100006 1096209 1096834 NH L=3.5e-07 W=4.2e-07

  6. 1 NH 1096207 abc PH L=3.5e-07 W=4.2e-07
  7. 2 100006 NHFF 1096834 FH L=3.5e-07 W=4.2e-07

  8. awk '$5=="NH"&&($3=="VSS"||$3!="VSS"&&$2==$4)' 1
  9. 1 100002 VSS 1096834 NH L=3.5e-07 W=4.2e-07
  10. 1 abc 1096207 abc NH L=3.5e-07 W=4.2e-07
复制代码

论坛徽章:
6
15-16赛季CBA联赛之浙江
日期:2021-07-14 11:18:4315-16赛季CBA联赛之浙江
日期:2021-08-20 17:26:1015-16赛季CBA联赛之天津
日期:2021-09-01 10:56:4619周年集字徽章-19
日期:2021-10-12 11:08:032016科比退役纪念章
日期:2021-10-12 11:33:4515-16赛季CBA联赛之深圳
日期:2021-11-11 14:25:38
7 [报告]
发表于 2021-11-08 17:33 |只看该作者
回复 6# wh7211

大神出来了,膜拜

论坛徽章:
1
2015亚冠之首尔
日期:2015-11-03 18:40:52
8 [报告]
发表于 2021-11-08 17:34 |只看该作者
回复 5# a5love3n
非常感谢你的解答,关于科学计数法,我在网上找了一个解决方法如下:
awk '{$6=sprintf("%.2f",$6*1e+06);print}' file

论坛徽章:
1
2015亚冠之首尔
日期:2015-11-03 18:40:52
9 [报告]
发表于 2021-11-08 17:35 |只看该作者
回复 5# a5love3n
首先感谢你的答复。
关于科学计数法,我在网上找了个解决办法:awk '{$6=sprintf("%.2f",$6*1e+06);print}' file


论坛徽章:
6
15-16赛季CBA联赛之浙江
日期:2021-07-14 11:18:4315-16赛季CBA联赛之浙江
日期:2021-08-20 17:26:1015-16赛季CBA联赛之天津
日期:2021-09-01 10:56:4619周年集字徽章-19
日期:2021-10-12 11:08:032016科比退役纪念章
日期:2021-10-12 11:33:4515-16赛季CBA联赛之深圳
日期:2021-11-11 14:25:38
10 [报告]
发表于 2021-11-08 17:36 |只看该作者
回复 8# jiawei2426

学习了,原来awk虽然不认识读取的科学计数法,但是可以计算科学计数法
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP