Se o separador puder aparecer dentro de campos, então não é realmente um separador. Eu usaria algo como
KEY=$(sed -n '/^key *=/ { s/^key *= *//; p }' file.conf)
em vez disso: isso procura linhas iniciadas com key
seguido por qualquer número de espaços e um sinal =
, descarta o início da linha e imprime. Como dave_thompson_085 indica que p
pode ser condicionado no s
:
KEY=$(sed -n 's/^key *= *//p' file.conf)
O equivalente ao AWK é
KEY=$(awk '/^key *=/ { sub("^key *= *", ""); print }' file.conf)
e o mesmo truque de combinação pode ser usado:
KEY=$(awk 'sub("^key *= *", "")' file.conf)