我试图循环遍历文件中的每一行,找到并提取以${
开头并以}
结尾的字母。因此,我期待的最终产出仅为SOLDIR
和TEMP
(来自inputfile.sh
)。使用sed/regex在同一行上提取多个实例
我已经尝试使用以下脚本,但它似乎匹配并只提取模式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"
关于'grep -P'的TIL,谢谢。 – 2012-03-26 10:31:05
非常有用。谢谢! – noumenon 2016-01-24 20:56:04