首页 > 解决方案 > sed 不是模式匹配

问题描述

我有一个包含这些文件的目录:

abc12345abc
abc1234567abc
abc123456789abc

我想获取其中包含 7 个数字的文件。我需要通过管道使用 sed 来做到这一点。我认为这会起作用:

ls -l | sed -n '/[0-9]\{7\}/p'

它返回:

abc1234567abc
abc123456789abc

标签: regexsed

解决方案


正则表达式没有锚定。abc123456789abc有一串正好 7 位数字,其中 3 位实际上是:123456723456783456789. 如果您想要不再匹配的文件名,则需要检查前后的非数字。

sed -n '/[^0-9][0-9]{7}[^0-9]/p'

推荐阅读