Я пытаюсь перебрать каждую строку в файле и найти и извлечь буквы, которые начинаются с ${
и заканчиваются }
.Поэтому в качестве окончательного результата я ожидаю только SOLDIR
и TEMP
(из inputfile.sh
).
Я попытался использовать следующий скрипт, но, похоже, он соответствует и извлекает только второе вхождение шаблона TEMP
.Я также попытался добавить g
в конце, но это не помогает.Может кто-нибудь, пожалуйста, дайте мне знать, как сопоставить и извлечь оба / несколько вхождений в одной строке?
inputfile.sh:
.
.
SOLPORT=\`grep -A 4 '\[LocalDB\]' \${SOLDIR}/solidhac.ini | grep \${TEMP} | awk '{print $2}'\`
.
.
скриптш:
infile='inputfile.sh'
while read line ; do
echo $line | sed 's%.*${\([^}]*\)}.*%\1%g'
done < "$infile"