SiegeX'in cevabı bu özel durum için daha iyidir, ancak keyfi metni nasıl aktaracağınızı da bilmelisiniz sed.
seddosya adlarını ikinci, üçüncü vb. parametreleri olarak bekliyor ve dosya adı bulamazsa, standart girdisinden okuyor. Bu nedenle, işlemek istediğiniz bir dosyada bulunmayan bir metniniz varsa, bunu bir araya getirmeniz gerekir sed. En basit yol şudur:
echo "blah blah" | sed 's/blah/blam/g'
Böylece örneğiniz:
LAT=$(echo "$LATLNG" | sed 's/(\(.*\),\(.*\))/\1/g')
LON=$(echo "$LATLNG" | sed 's/(\(.*\),\(.*\))/\2/g')
Alternatif (daha iyi ama daha belirsiz) Yöntemler
Eğer herhangi bir şansı var mı varsa $LATLNGbir tire ile başlayabilir ya da bilgiçlik olmak istiyorsanız, kullanmanız gereken printfyerine echo:
printf '%s' "$LATLNG" | sed 's/foo/bar/g'
Veya bir "burada belge", ancak bu kullandığınız yapı ile biraz garip olabilir:
LAT=$(sed 's/foo/bar/g' <<END
$LATLNG
END
)
Veya bashtaşınabilirlik konusunda endişe duymuyorsanız "here string" i kullanabilirsiniz:
sed 's/foo/bar/g' <<< "$LATLNG"