2013-11-15 4 views
3

у меня есть регулярное выражение, которое должным образом возвращает это:Regex соответствие строке между скобками

[a1] 
[b892jklas] 
[klaj218349] 
[alllasd] 

Но я просто хочу, чтобы соответствовать и вернуться:

a1 
b892jklas 
klaj218349 
alllasd 

Я использую следующую команду

cmd | grep -i -o -E '\[[[:alnum:]]\]' 

Но я не знаю, как исключить скобки из результата.

+0

Дубликат [ этот вопрос] (http://unix.stackexchange.com/questions/13466/can-grep-output-only-specified-groupings-that-match). –

ответ

2

UPDATE:

tr -d '[]' также работает (спасибо @ 1_CR за комментарий)

ОРИГИНАЛЬНЫЙ ПОСТ:

... | tr -s "[" "" | tr -s "]" "" является самым простым решением. Вы можете также использоваться sed ...

+1

Почему бы не 'tr -d '[]''? – iruvar

+0

Это тоже работает! :) – rkh

1

Если GNU Grep вариант (также это должно быть составлено против последней версии libpcre.so для \K работы)

grep -oP '\[[[:space:]]*\K[[:alnum:]]+(?=[[:space:]]*\])' 
Смежные вопросы