SiegeXの答えは、この特定のケースには適していますが、任意のテキストをに渡す方法も知っておく必要がありますsed
。
sed
2番目、3番目などのパラメータとしてファイル名が必要です。ファイル名が見つからない場合は、標準入力から読み取ります。したがって、ファイルにないテキストを処理したい場合は、それをにパイプする必要がありますsed
。最も簡単な方法は次のとおりです。
echo "blah blah" | sed 's/blah/blam/g'
したがって、例は次のようになります。
LAT=$(echo "$LATLNG" | sed 's/(\(.*\),\(.*\))/\1/g')
LON=$(echo "$LATLNG" | sed 's/(\(.*\),\(.*\))/\2/g')
代替(より良いがより不明瞭な)メソッド
$LATLNG
ダッシュで始まる可能性があると思う場合、またはあなたがbe慢になりたい場合は、printf
代わりに使用する必要がありますecho
:
printf '%s' "$LATLNG" | sed 's/foo/bar/g'
または「ヒアドキュメント」ですが、使用している構成体では少し厄介な場合があります。
LAT=$(sed 's/foo/bar/g' <<END
$LATLNG
END
)
または、bash
移植性を心配していないのに使用している場合は、「here文字列」を使用できます。
sed 's/foo/bar/g' <<< "$LATLNG"