Извлечение нескольких вхождений в одной строке с помощью sed /regex

Я пытаюсь просмотреть каждую строку в файле, найти и извлечь буквы, начинающиеся с ${и заканчивающиеся на }. Итак, в качестве окончательного результата я ожидаю только SOLDIRиTEMP(отinputfile.sh).

Я попытался использовать следующий сценарий, но он соответствует и извлекает только второе вхождение шаблона TEMP. Я также пытался добавить gв конце, но это не помогает. Может кто-нибудь, пожалуйста, дайте мне знать, как сопоставить и извлечь оба/несколько вхождений в одной строке?

inputfile.sh:

.  
.  
SOLPORT=\`grep -A 4 '\[LocalDB\]' \${SOLDIR}/solidhac.ini | grep \${TEMP} | awk '{print $2}'\`  
.  
.  

script.sh:

infile='inputfile.sh'  
while read line ; do    
  echo $line | sed 's%.*${\([^}]*\)}.*%\1%g'  
done < "$infile"  
12
задан Cœur 30 April 2017 в 12:53
поделиться