0

我有一个文本文件,我想在其中找到一些代码,每个代码由 3 个数字 + 7 个大写字母组成。示例:374ANSKJDS;3UKRHDPO;99RWLFOPE 我的问题是如何使用 grep 或 sed 按数字范围查找这些代码?例如,我想查找从 750 到 900 的代码?

谢谢

编辑

既然我是使用 grep 完成的,谢谢大家,有人可以在 windows 下使用 awk 给出命令吗?

4

3 回答 3

3

您无法使用正则表达式比较数字的值。但是,您可以通过指定多个模式来解决此问题。对于您指定的时间间隔 (750-900),您可以使用以下正则表达式:

(7[5-9][0-9]|8[0-9][0-9]|900)[A-Z]{7}
于 2012-08-24T09:47:21.717 回答
1

你可以使用这种正则表达式

((7[5-9][0-9])|(8[0-9][0-9])|(900))[A-Z]{7}
于 2012-08-24T09:50:35.293 回答
1

您可以使用以下方法匹配所有这些:

\d{1,3}[A-Z]{7}

由于您想匹配一个范围,您需要\d{1,3}为每个范围用其他东西替换部分。因为正则表达式适用于字符串,所以您不能编写[750-900]之类的内容来匹配范围。因此,对于范围 [750-900],请使用:

(7[5-9]\d|8\d\d|900)[A-Z]{7}
于 2012-08-24T09:51:00.283 回答