我想检查第一列中的数字等于第二列,第一列应该以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
发布于 2017-08-14 15:56:14
这应该适用于您的要求:
awk -F'|' '{s=$2;sub(/\s/,"",s)}$1 ~ s' input
ABC12345DEF |12345 |23132331331|
ABC89043DEF |89043 |23132331331|你的代码中的问题:
+连接awk中的字符串/.../之间连接awk中的字符串,它是静态正则表达式。~而不是!~。发布于 2017-08-14 21:10:06
在列|12345 |中,尾随空间数据是吗?根据你提议的输出,我想没有。在这种情况下,分隔符不仅仅是管道字符。
要查看$2是否嵌入到$1中的常量中,这将达到以下目的:
$ awk -F '[ |]' '"ABC" $2 "DEF" = $1 { print }'https://stackoverflow.com/questions/45678279
复制相似问题