我写了一个正则表达式,它在某个程序(grep、sed、awk、perl、python、ruby、ksh、bash、zsh、find、emacs、vi、vim、gedit 等)中运行良好。但是当我在不同的程序(或不同的 unix 变体)中使用它时,它会停止匹配。为什么?
我ls在 bash 中使用该命令,试图查找长度为 n 的所有文件或目录。假设 n=5
我的命令是:
ls ?????
Run Code Online (Sandbox Code Playgroud)
但这也包括非字母字符,例如句点。例如,以下文件将匹配:
ab.cd
abd.c
Run Code Online (Sandbox Code Playgroud)
我只想匹配具有 5 个字母或数字名称的文件:
five1
five2
five3
Run Code Online (Sandbox Code Playgroud)
但不是
abc.d
ab.cd
a.bcd
Run Code Online (Sandbox Code Playgroud)
如何修改我的命令?
找到答案:
ls [a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9]
Run Code Online (Sandbox Code Playgroud)
我找到了答案,但我怎样才能让它不那么难看?