我想检查if列是否以Alphabet-Numeric-Alphabet(ABC45648DE)开头

时间:2017-08-10 14:50:16

标签: awk

我想检查if列是否以Alphabet-Numeric-Alphabet(ABC45648DE)开头

我的意见

ABC45648DEF    |GHJKK    |23132331331|   
ABC     DEF    |GHJKK    |23132331331| 
ABCGHHJJDEF    |GHJKK    |23132331331|
ABC89043DEF    |GHJKK    |23132331331|

输出应为:

ABC45648DEF    |GHJKK    |23132331331|
ABC89043DEF    |GHJKK    |23132331331|

我尝试使用这个“”“” awk -F'|' '($ 1!〜/ [A-Z0-9a-z] /)'WHTFile.txt> QC2Valid.txt “”“它无效。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

awk 解决方案:

awk -F'[[:space:]]*\\|' '$1~/^ABC[0-9]+DEF/' WHTFile.txt

输出:

ABC45648DEF    |GHJKK    |23132331331|   
ABC89043DEF    |GHJKK    |23132331331|

答案 1 :(得分:0)

此解决方案有效:

awk '/^ABC[0-9]{5}DEF /' WHTFile.txt > QC2Valid.txt

它在每行的开头匹配“ABCxxxxxDEF”,其中“x”是一个数字。

如果需要任意数量的数字(且至少为1),则为脚本:

awk '/^ABC[0-9]+DEF /' WHTFile.txt > QC2Valid.txt

加号与示例中的1位或更多位相匹配。

如果ABC和DEF之间的数字是可选的,请尝试另外一个:

awk '/^ABC[0-9]*DEF /' WHTFile.txt > QC2Valid.txt

在这种情况下,星号匹配零个或多个数字。