у меня есть в каталоге linux много файлов, обычный текст с некоторыми каталогами, и я хочу выполнить поиск во всех этих файлах и получить именно строку между "-(" и ")-", например:
bbbfb da bg -(fdsd)- fgfjmui -( juju gfdgf b)- fsdf sdfs dsfdlk,kwwk
xwpv -(64fsdfds)- fsdfsd -(a)- fsdfsd...
и вернуться:
- фдсд
- Джуджу gfdgf b
- 64fsdfds
- a ...
Я некоторое время читал и нашел такие команды, как grep, но я попытался, и я думаю, что эта команда возвращает точную строку и только одну за строкой:
grep -Rn "-(" *
я пробовал также команду sed, например:
sed -e 's/.*-(\([^"]*\))-.*/\1/'
которые возвращают все строки, а где шаблон, только строку внутри -( и )-, но пока не совсем правильно.
Я читал об awk, но у меня вопрос: возможно ли это с помощью grep, sed или awk? есть еще что-то, что можно добавить в команду sed? (я новичок в этом) есть еще одна команда для этого? или другая идея, о которой я подумал, это сделать небольшую программу на c для чтения файлов char by char