Jawaban SiegeX lebih baik untuk kasus khusus ini, tetapi Anda juga harus tahu cara menyampaikan teks arbitrer sed
.
sed
mengharapkan nama file sebagai parameter kedua, ketiga, dll., dan jika tidak menemukan nama file, itu dibaca dari input standarnya. Jadi jika Anda memiliki teks yang ingin Anda proses yang tidak ada dalam file, Anda harus mem-pipe-nya sed
. Cara yang paling mudah adalah:
echo "blah blah" | sed 's/blah/blam/g'
Jadi contoh Anda akan menjadi:
LAT=$(echo "$LATLNG" | sed 's/(\(.*\),\(.*\))/\1/g')
LON=$(echo "$LATLNG" | sed 's/(\(.*\),\(.*\))/\2/g')
Metode Alternatif (lebih baik tetapi lebih jelas)
Jika Anda berpikir ada peluang yang $LATLNG
bisa dimulai dengan tanda hubung, atau jika Anda ingin menjadi bertele-tele, Anda harus menggunakan printf
sebagai ganti echo
:
printf '%s' "$LATLNG" | sed 's/foo/bar/g'
Atau "dokumen di sini", tetapi itu bisa sedikit canggung dengan konstruk yang Anda gunakan:
LAT=$(sed 's/foo/bar/g' <<END
$LATLNG
END
)
Atau jika Anda menggunakan bash
dan tidak khawatir tentang portabilitas, Anda dapat menggunakan "string di sini":
sed 's/foo/bar/g' <<< "$LATLNG"