我想搜索可能包含的文件名kavi or kabhi。
我在终端写了命令:
ls -l *ka[vbh]i*
Between ka and i可能有v or bh .
我写的代码不正确。正确的命令是什么?
一个很好的方法是使用扩展的 glob。使用它们,您可以在 Bash 上执行正则表达式。
首先,您必须启用extglob
功能,因为默认情况下它是禁用的:
shopt -s extglob
然后,编写具有所需条件的正则表达式:stuff +ka
+ 任一v
or bh
+ i
+ 东西。全部一起:
ls -l *ka@(v|bh)i*
语法与普通正则表达式有点不同,所以你需要读入扩展的全局变量 that...
@(list):匹配给定模式之一。
Test
$ ls
a.php AABB AAkabhiBB AAkabiBB AAkaviBB s.sh
$ ls *ka@(v|bh)i*
AAkabhiBB AAkaviBB
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)