La respuesta de SiegeX es mejor para este caso particular, pero también debe saber cómo pasar texto arbitrario sed.
sedespera nombres de archivo como su segundo, tercer, etc. parámetros, y si no encuentra ningún nombre de archivo, lee de su entrada estándar. Entonces, si tiene texto que desea procesar que no está en un archivo, debe canalizarlo sed. La forma más directa es esta:
echo "blah blah" | sed 's/blah/blam/g'
Entonces su ejemplo sería:
LAT=$(echo "$LATLNG" | sed 's/(\(.*\),\(.*\))/\1/g')
LON=$(echo "$LATLNG" | sed 's/(\(.*\),\(.*\))/\2/g')
Métodos alternativos (mejores pero más oscuros)
Si crees que hay alguna posibilidad de que $LATLNGcomience con un guión, o si quieres ser pedante, debes usar en printflugar de echo:
printf '%s' "$LATLNG" | sed 's/foo/bar/g'
O un "documento aquí", pero eso puede ser un poco incómodo con la construcción que está utilizando:
LAT=$(sed 's/foo/bar/g' <<END
$LATLNG
END
)
O si está usando bashy no le preocupa la portabilidad, puede usar una "cadena aquí":
sed 's/foo/bar/g' <<< "$LATLNG"