2013-07-19 2 views
0

У меня есть группа папок:Как использовать интервалы числа в регулярных выражениях?

$ 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 указан только список _clip6.trim.

Мне нужно понять, как использовать числовые интервала в выражениях регулярных выражений. Спасибо за ваше время!

+1

http://www.regular-expressions.info/numericranges.html –

+0

Обратите внимание, что globs (aka wildcards) в оболочке являются * не * регулярными выражениями. У них есть некоторые общие черты, но они также конфликтуют друг с другом фундаментальными способами (например, «*» означает разные вещи для shell globs, чем для регулярных выражений). –

ответ

6

[...] - класс персонажа. Когда вы говорите [7-16], это означает «символы от 7 до 1 (нет) и символ 6.» Я бы сказал, используя два выражения: _clip[7-9].trim _clip1[0-6].trim. Похоже, у вас их нет в этом диапазоне, но если вы это сделали, вы можете использовать _clip{7..16}.trim.

Кроме того, в командной строке это глобусы, а не регулярные выражения. Есть несколько отличий: * означает что-то или ничего, а не 0+ того, что перед ним, то же самое с ? (ноль или одно из чего-либо, а не предыдущее выражение).

0

как об использовании генератора аргумент

$ 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 ... Баш может генерировать аргументы:

$ 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_y 
Смежные вопросы