A resposta de SiegeX é melhor para este caso em particular, mas você também deve saber como passar um texto arbitrário para sed
.
sed
está esperando nomes de arquivos como seus segundo, terceiro, etc. parâmetros, e se ele não encontrar nenhum nome de arquivo, ele lê a partir de sua entrada padrão. Então, se você tem o texto que deseja processar que não está em um arquivo, é necessário canalizá-lo para sed
. A maneira mais direta é esta:
echo "blah blah" | sed 's/blah/blam/g'
Assim, seu exemplo se tornaria:
LAT=$(echo "$LATLNG" | sed 's/(\(.*\),\(.*\))//g')
LON=$(echo "$LATLNG" | sed 's/(\(.*\),\(.*\))//g')
Métodos alternativos (melhor, mas mais obscuros)
Se você acha que há uma chance de que $LATLNG
comece com um traço ou se você quiser ser pedante, use printf
em vez de echo
:
printf '%s' "$LATLNG" | sed 's/foo/bar/g'
Ou um "documento aqui", mas isso pode ser um pouco estranho com a construção que você está usando:
LAT=$(sed 's/foo/bar/g' <<END
$LATLNG
END
)
Ou se você estiver usando bash
e não estiver preocupado com a portabilidade, pode usar uma "string aqui":
sed 's/foo/bar/g' <<< "$LATLNG"