Perl 如何在数据文件中查找特定的数字模式

Perl 如何在数据文件中查找特定的数字模式,perl,awk,grep,Perl,Awk,Grep,我有一个像这样的数据文件 15105021 15105043 15106013 15106024 15106035 15105024 15105042 15106015 15106021 15106034 我需要对序列号为1510603,1510504 我试过这个awk命令 awk /[1510603,1510504]/ soursefile.txt 但是它不起作用。根据文件的内容,以下内容就足够了 grep -E '^1510603|^1510

我有一个像这样的数据文件

15105021   
15105043  
15106013  
15106024  
15106035  
15105024  
15105042  
15106015  
15106021  
15106034  
我需要对序列号为
1510603
1510504

我试过这个awk命令

awk /[1510603,1510504]/ soursefile.txt  

但是它不起作用。

根据文件的内容,以下内容就足够了

grep -E '^1510603|^1510504' file
如果您的版本不支持
-E
标志,请尝试
egrp
而不是
grep

如果你坚持


根据文件的内容,以下内容就足够了

grep -E '^1510603|^1510504' file
如果您的版本不支持
-E
标志,请尝试
egrp
而不是
grep

如果你坚持

我认为这是可行的:

egrep '1510603|1510504' source
我认为这是可行的:

egrep '1510603|1510504' source

您的问题陈述得很糟糕,但如果您想打印文件中以
1510603
1510504
开头的所有数字,则可以用Perl编写

perl -ne 'print if /^1510(?:603|504)/' sourcefile.txt

您的问题陈述得很糟糕,但如果您想打印文件中以
1510603
1510504
开头的所有数字,则可以用Perl编写

perl -ne 'print if /^1510(?:603|504)/' sourcefile.txt

较短的
awk

awk '/1510603|1510504/' file

较短的
awk

awk '/1510603|1510504/' file

在LHS上使用egrep和字边界,因为OP希望匹配RHS上的所有匹配数字:

egrep '\b(1510603|1510504)' file

15105043
15106035
15105042
15106034

在LHS上使用egrep和字边界,因为OP希望匹配RHS上的所有匹配数字:

egrep '\b(1510603|1510504)' file

15105043
15106035
15105042
15106034

您假设数字在行首,但OP没有说明这一点。您假设数字在行首,但OP没有说明这一点。
/[15106031510504]/
可以简化为
/[013456]/
即,它在该行的任何位置查找包含字符类中任何一个字符的任何行。您是否试图查找介于
1510504
1510603
之间的数字,或者以这些值或其他值开头或结尾的数字?请澄清并发布预期输出。
/[15106031510504]/
可简化为
/[013456]/
即,它在该行的任何位置查找包含字符类中任何一个字符的任何行。您是否试图查找介于
1510504
1510603
之间的数字,或者以这些值或其他值开头或结尾的数字?请澄清并公布预期的结果。或者更简洁地用Awk
Awk'/^1510(603 | 504)/'sourcefile.txt(603 | 504)/'sourcefile.txt
我想知道是否有机会让落选的选民解释自己?或者更简洁地用Awk
Awk'/^1510(603 | 504)/'sourcefile.txt
我想知道是否有可能被否决的投票人会自我解释?它是否匹配像
91510603
这样的数字?这是正确的,它是OP要求的,一个序列号。它是否匹配像
91510603
这样的数字?这是正确的,它是OP要求的,一个序列号。