首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想检查第一列中的数字等于第二列

我想检查第一列中的数字等于第二列
EN

Stack Overflow用户
提问于 2017-08-14 15:45:47
回答 2查看 47关注 0票数 0

我想检查第一列中的数字等于第二列,第一列应该以ABC开头,以DEF结尾,这两列之间的数字应该与第二列匹配。

这里有人能帮我吗。

My输入:

美国广播公司12345DEF1234523132331331 x

美国广播公司95678DEF4567823132331331 x

美国广播公司87887DEF8618723132331331 x

美国广播公司89043DEF8904323132331331 x

输出应该是:

美国广播公司12345DEF1234523132331331 x

美国广播公司89043DEF8904323132331331 x

我正试着用那个愚笨的,但它不起作用。awk -F‘溶胶'($1 !~ /ABC+$2+DEF/)’WHTFile.txt‘> QC2Valid.txt

EN

回答 2

Stack Overflow用户

发布于 2017-08-14 15:56:14

这应该适用于您的要求:

代码语言:javascript
复制
awk -F'|' '{s=$2;sub(/\s/,"",s)}$1 ~ s' input
ABC12345DEF |12345 |23132331331|
ABC89043DEF |89043 |23132331331|

你的代码中的问题:

  • 您不能通过+连接awk中的字符串
  • 您不能在/.../之间连接awk中的字符串,它是静态正则表达式。
  • 根据您所描述的需求,您应该使用~而不是!~
  • 您的第二列有空字符串,应该在匹配之前删除它们。
票数 1
EN

Stack Overflow用户

发布于 2017-08-14 21:10:06

在列|12345 |中,尾随空间数据是吗?根据你提议的输出,我想没有。在这种情况下,分隔符不仅仅是管道字符。

要查看$2是否嵌入到$1中的常量中,这将达到以下目的:

代码语言:javascript
复制
$ awk -F '[ |]' '"ABC" $2 "DEF" = $1 { print }'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45678279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档