で正常に動作する正規表現がawk
ありますが、最初に正規表現をシェル変数に保存する必要があります
valLat="^[-+]?(([0-9]+[d])?([0-9]+['])?([0-9]*[.]?[0-9]+[\"])?|[0-9]*[.]?[0-9]+)[NnSs]?$"
次に、シェル変数を次のawk
ような変数に渡します
echo 39d41\'17.766\"N | awk -v valLat=$valLat '{ if ($1 ~ valLat) print $1; else print "erro" }'
39d41'17.766"N
これは機能しますが、シェル変数を使用せずにこれを行いたいです。特殊文字の前にエスケープ「\」を使用しようとしましたが、成功しませんでした。