我有一组文件夹:
$ ls -d _clip*
_clip10.trim _clip12.trim _clip14.trim _clip16.trim _clip2.trim _clip4.trim _clip6.trim _clip8.trim
_clip11.trim _clip13.trim _clip15.trim _clip1.trim _clip3.trim _clip5.trim _clip7.trim _clip9.trim我需要选择两批文件夹,一批是从_clip1.trim到_clip6.trim
$ ls -d _clip[1-6].trim
_clip1.trim _clip2.trim _clip3.trim _clip4.trim _clip5.trim _clip6.trim和其他从_clip7.trim到_clip16.trim,但当我尝试使用ls -d _clip[7-16].trim only list时,会列出_clip6.trim。
我需要了解如何在正则表达式中使用数字间隔。耽误您时间,实在对不起!
发布于 2013-07-20 01:13:17
[...]是一个字符类。当您说[7-16]时,这意味着“从7到1的字符(无)和字符6”。我会说使用两个表达式:_clip[7-9].trim _clip1[0-6].trim。看起来并不是所有的都在这个范围内,但是如果你有,你可以使用_clip{7..16}.trim。
此外,在命令行中,它们是全局变量,而不是正则表达式。这里有一些区别- *表示任何东西或者什么都不是,而不是它前面的任何东西的0+,与?一样(任何东西的零或一,而不是前面的表达式)。
发布于 2013-07-20 01:34:57
使用参数生成器怎么样?
$ echo _clip{1..6}.trim
_clip1.trim _clip2.trim _clip3.trim _clip4.trim _clip5.trim _clip6.trim
$ echo _clip{7..16}.trim
_clip7.trim _clip8.trim _clip9.trim _clip10.trim _clip11.trim _clip12.trim _clip13.trim _clip14.trim _clip15.trim _clip16.trim这些不是regexpes...bash可以生成的参数:
$ echo x{0..1}_{FOO,BAR}_{x,y}
x0_FOO_x x0_FOO_y x0_BAR_x x0_BAR_y x1_FOO_x x1_FOO_y x1_BAR_x x1_BAR_yhttps://stackoverflow.com/questions/17751722
复制相似问题