Awk 我想检查with列是否以字母数字字母(ABC45648DE)开头

Awk 我想检查with列是否以字母数字字母(ABC45648DE)开头,awk,Awk,我想检查with列是否以字母数字字母(ABC45648DE)开头 我的输入: ABC45648DEF |GHJKK |23132331331| ABC DEF |GHJKK |23132331331| ABCGHHJJDEF |GHJKK |23132331331| ABC89043DEF |GHJKK |23132331331| ABC45648DEF |GHJKK |23132331331| ABC89043DEF

我想检查with列是否以字母数字字母(ABC45648DE)开头

我的输入:

ABC45648DEF    |GHJKK    |23132331331|   
ABC     DEF    |GHJKK    |23132331331| 
ABCGHHJJDEF    |GHJKK    |23132331331|
ABC89043DEF    |GHJKK    |23132331331|
ABC45648DEF    |GHJKK    |23132331331|
ABC89043DEF    |GHJKK    |23132331331|
输出应为:

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”它不起作用

非常感谢您的帮助。

awk解决方案:

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

ABC45648DEF    |GHJKK    |23132331331|   
ABC89043DEF    |GHJKK    |23132331331|
此解决方案的工作原理是:

awk '/^ABC[0-9]{5}DEF /' WHTFile.txt > QC2Valid.txt
它与每行开头的“abcxxdef”匹配,其中“x”是一个数字

如果需要任意位数(至少1位),则脚本如下:

awk '/^ABC[0-9]+DEF /' WHTFile.txt > QC2Valid.txt
加号与示例中的一个或多个数字匹配

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

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

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

为什么用三对dbl引号将
awk
代码括起来?在每行代码/数据/错误MSG的前面使用4个空格或突出显示一块文本,并使用编辑框左上角的
{}
格式工具将其格式设置为代码/数据/输出。祝你好运。请包括你当前的样本输出。否则,您会要求N个读者创建测试文件并运行代码,只是为了看看“它不工作”是什么意思。祝你好运。
[A-Z0-9a-z]
表示如果
$1
中的任何单个字符与该模式匹配,则测试通过。我不认为这是您的意思,而且鉴于
$1
值有尾随空格,这会使编写正则表达式来验证数据变得复杂(或者是
|
字符前面的制表符?)。祝你好运。你希望
abcghjjdef
记录失败,所以你真的希望$1必须包含A-Za-z和0-9,而
[A-Z0-9a-z]
意味着“只要其中任何一个存在,(不一定全部)就可以”。你能更新你的Q以便对你的问题有一个清晰的定义吗?谢谢,祝你好运。谢谢你纠正我。实际上是三对双引号,我只想突出那个。这就是我正在使用的-->awk-F'|'($1!~/[A-Z0-9a-z]/)”WHTFile.txt>QC2Valid.txt。第一列应以ABC-->ABC#######DEF开头,以DEF结尾,中间还应包含数字。感谢您提供的解决方案。它应该以ABC开头,以DEF-->ABC######DEF结尾。你能帮我吗?是的,它在工作。非常感谢,但中间的数字可能不是5,也可以小于或大于5。awk'/^ABC[0-9]{5}DEF/'WHTFile.txt>QC2Valid.txt如果将其更改为:awk'$1~/^ABC[0-9]+DEF$/'file@kris我编辑我的答案以获得任意位数(至少匹配1位数)。