Я працюю з текстом, який переповнений між дужками [], які я не хочу. Оскільки я можу видалити дужки самостійно, мені не потрібен однолінійний вкладиш для мене, але мені потрібен однокласник, який видалить усе між ними.
Що з дужками () замість дужок?
Я працюю з текстом, який переповнений між дужками [], які я не хочу. Оскільки я можу видалити дужки самостійно, мені не потрібен однолінійний вкладиш для мене, але мені потрібен однокласник, який видалить усе між ними.
Що з дужками () замість дужок?
Відповіді:
Замініть [some text]порожнім рядком. Якщо припустити, що ви не хочете розбирати вкладені дужки, some textвони не можуть містити жодних дужок.
sed -e 's/\[[^][]*\]//g'
Зауважте, що в дужковому виразі, [^][]щоб відповідати чому-небудь, окрім, [або ], ]обов'язково треба вийти на перше місце. Зазвичай a ]закінчує набір символів, але якщо це перший символ у наборі (тут, після ^символу доповнення), це ]означає себе.
Якщо ви хочете проаналізувати вкладені дужки або якщо текст, що містить рамки, може охопити кілька рядків, sed не є правильним інструментом.
s/\[[^\[\]]*\]//g(тобто використовувати зворотні косої риски, щоб уникнути членів набору символів).
[…]= набір символів. ^як перший символ означає доповнення набору. ]зазвичай буде позначати кінець набору, але якщо це перший символ, окрім ^, це звичайний символ - порожній набір або доповнення порожнього набору не дозволено. Потім[ є звичайним і ]закінчує набір.
Команда sed -e 's/([^()]*)//g'буде робити дужки замість дужок.