grep用于匹配数字序列中的1到2位数字

时间:2017-05-22 06:32:04

标签: grep

我在文件中有以下数字

44700101
44700201
44700301
44700401
44700501
44700601
44700701
44700801
44700901
44701001

想要获取上述数字,其中第5位和第6位数大于5使用GREP WILDCARDS。

像" grep .... [6-10] ..文件"应该低于

44700601
44700701
44700801
44700901
44701001

任何帮助将不胜感激。感谢

2 个答案:

答案 0 :(得分:0)

gawk (GNU awk)方法:

awk '{split($0,a,"")}int(a[5]a[6])>5' file

gawk 能够将 FS split()第三个​​参数设为空字符串

  • split($0,a,"") - 将数字字符串拆分为单独的数字(填充数组a

  • int(a[5]a[6])>5 - 如果整数表示第5和第6个数字大于5,则打印该行

grep 方法:

grep '^[0-9]\{4\}\([1-9]\|0[6-9]\).*' file

输出(两种方法):

44700601
44700701
44700801
44700901
44701001

答案 1 :(得分:0)

只需使用awk:

$ awk 'substr($0,5,2)+0 > 5' file
44700601
44700701
44700801
44700901
44701001