gpt4 book ai didi

linux - 我想检查第一列中的数字是否等于第二列,第一列应以以下格式开始和结束

转载 作者:太空宇宙 更新时间:2023-11-04 09:17:14 26 4
gpt4 key购买 nike

我想检查第一列中的数字是否等于第二列,第一列应该以“ABC”开头并以“DEF”结尾,但有时它以“ABC”之间的“DEFZ#”数字结尾######“DEF”或“DEFZ#”应该与第二列匹配。任何人都可以在这里帮助我吗?

我的输入:

>ABC12345DEF | 12345  |23132331331|
>ABC12345DEFZ1 | 12345 |23132331331|
>ABC12345DEFZ2 | 12345 |23132331331|
>ABC95678DEF | 45678 |23132331331|
>ABC87887DEF | 86187 |23132331331|
>ABC89043DEF | 89043 |23132331331|
>ABC89043DEFZ1 | 89043 |23132331331|
>ABC89043DEFZ2 | 89043 |23132331331|
>ABC89043DEFZ3 | 89043 |23132331331|

输出应该是:

>ABC12345DEF |12345 |23132331331|

>ABC12345DEFZ1 |12345 |23132331331|

>ABC12345DEFZ2 |12345 |23132331331|

>ABC89043DEFZ1 |89043 |23132331331|

>ABC89043DEFZ2 |89043 |23132331331|

>ABC89043DEFZ3 |89043 |23132331331|

我正在尝试使用以下一个,但它不起作用。awk -F '|' '"ABC"$2 "DEF"!= $1 { print }' WHTFile.txt > QC2Valid.txt

最佳答案

能否请您尝试关注并告诉我这是否对您有帮助。

awk -F"|" '
$1 ~ /^ABC[0-9]+DEF[123Z]/ || $1 ~ /^ABC[0-9]+DEF/{
sub(/ +$/,"",$2);
match($1,/[0-9]+/);
if(substr($0,RSTART,RLENGTH)==$2){
print
}
}
' OFS="|" Input_file

关于linux - 我想检查第一列中的数字是否等于第二列,第一列应以以下格式开始和结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45888427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com