Я пытаюсь пропустить каждую строку в файле и найти и извлечь буквы, начинающиеся с ${
и заканчивающиеся на }
. Таким образом, в качестве конечного результата я ожидаю только SOLDIR
и TEMP
(от inputfile.sh
).
Я попытался использовать следующий script, но кажется, что он соответствует и извлекает только второе вхождение шаблона 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"