使用glob表达式匹配两个整数

Sle*_*der 0 linux glob

我试图匹配/ dev / ttyS0以外的以下路径,即/ dev / ttyS1到/ dev / ttyS99。在我的Linux终端中,我使用:

ls /dev/ttyS[1-9][0-9]*
Run Code Online (Sandbox Code Playgroud)

这不会返回任何东西。下面的表达式虽然将/ dev / ttyS1返回到/ dev / ttyS9。

ls /dev/ttyS[1-9]
Run Code Online (Sandbox Code Playgroud)

关于如何使第一个表达式起作用的任何想法?

Dav*_*oss 5

有什么问题:

$ ls /dev/ttyS[1-9]*
Run Code Online (Sandbox Code Playgroud)

我的意思是,我知道这不会强制将后续字符转换为数字,但是由于我们知道这些文件的命名方式,因此它将始终有效。

更新:看来您有点困惑。这些是全局模式,而不是正则表达式。但是我不确定Python如何适合这个。

如果您希望精确的glob模式满足您的要求,请使用:

$ ls /dev/ttyS{[1-9],[1-9][0-9]}
Run Code Online (Sandbox Code Playgroud)

  • 它不会匹配S10,S20,S30或其他任何10的倍数的数字。 (2认同)