SiegeX'in cevabı bu özel durum için daha iyidir, ancak keyfi metni nasıl aktaracağınızı da bilmelisiniz sed
.
sed
dosya 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 $LATLNG
bir tire ile başlayabilir ya da bilgiçlik olmak istiyorsanız, kullanmanız gereken printf
yerine 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 bash
taşınabilirlik konusunda endişe duymuyorsanız "here string" i kullanabilirsiniz:
sed 's/foo/bar/g' <<< "$LATLNG"