Arlindo,
Realmente tinha um erro no Lotaemento. consertei aqui no meu script atualizado. Obrigado.
Como sempre rodo o spell check no texto final antes de fazer upload, eu acabo corrigindo esse erro em tempo.
Quanto ao
o backslash seguido do ponto “.” faz com que ele só pegue o “Da” seguido de ponto, assim ele não gera o falso positivo indicado, a não ser que estivesse escrito “Rua Da. Fulana”, ao invés de “Rua Da Fulana”.
E o “\b” é para indicar word boundaries, ou seja em qq lugar do texto.
Tenho rodado o script em outros estados e em todos eles acaba aparecendo um outro falso positivo, que redunda em aperfeiçoamento do script.
Abaixo segue versão mais atual que estou usando, neste acrescentei parametros , para não ter que reescrever sempre que mudar o nome do estado.
#!/bin/bash
# recebe 2 parametros
# 1 - nome do estado
# 2 - flag indicando se precisa extrair o mapa do brazil-latest e atualizar (1) ou só rodar o sed (2)
if [ ! -d "$1" ]; then
mkdir $1
fi
if [ $2 -eq 1 ] ; then
# extraindo do mapa brazil o estado
echo extraindo $1 do mapa brazil
bzcat ./mapa_brasil/brazil-latest.osm.bz2 | ./osmconvert - -B=./boundaries/$1.poly -o=./$1/$1.osm
echo atualizando o mapa de $1
# 1 passo, atualizar o paraiba.osm
./osmupdate ./$1/$1.osm ./$1/new_$1.osm --day -B=./boundaries/$1.poly
rm ./$1/old_$1.osm
mv ./$1/$1.osm ./$1/old_$1.osm
mv ./$1/new_$1.osm ./$1/$1.osm
echo extraindo do mapa estadual somente os ways para processamento
# 2 extrair ways para alteração
osmosis --read-xml ./$1/$1.osm --tf accept-ways highway=* --tf accept-ways name=* --tf reject-relations --used-node idTrackerType=Dynamic --write-xml ./$1/entrada.osm
fi
echo Inicio processamento
# 3 processar arquivo
sed -e '
# incluindo "-" nos nomes de estradas com espaço entre as letras e os números
s/\(\b[a-z]\{2\}\) \([0-9]\{3\}\)/\1-\2/Ig
# qualificadoras das vias
s/\bav\b[.,:]\? \?\|\bAvda\b[.,:]\? \?\|[^.]\bA\. \?V \?\. /Avenida /Ig
s/"al\b[.,:]\?[^-] \?\|"alam\b[.,:]\? \?/"Alameda /Ig
s/\bbc\b[.,:]\?[^"] \?/Beco /Ig
s/\bestr\b[.,:]\? \?\|\bEstdr\b[.,:]\? \?/Estrada /Ig
s/\bjd\b[.,:]\? \?/Jardim /Ig
s/\blad\b[.,:]\? \?\|\bld\b[.,:]\? /Ladeira /Ig
s/\bLrg\b[.,:]\? \?/Largo /Ig
s/\bLot\b[.,:]\?[^"] \?/Loteamento /Ig
s/\bPte\b[.,:]\? \?/Ponte /Ig
s/\bp[cç][a]\?\b[.,:]\? \?/Praça /Ig
s/\bpq\b[.,:]\? \?/Parque /Ig
s/"r[ua]\?\b[.,:]\? \?/"Rua /Ig
s/\brod\b[.,:]\? \?/Rodovia /Ig
s/"tr[va]\?\b[.,:]\? \?\|"tv[a]\?\b[.,:]\? \?/"Travessa /Ig
s/"vd\b[.,:]\? \?\|"viad\b[.,:]\? \?/"Viaduto /Ig
# abreviações gerais
s/\bAgro\b[.,:]\? \?/Agrônomo /Ig
s/\bAlm\b[.,:]\? \?/Almirante /Ig
s/\bApst\b[.,:]\? \?/Apóstolo /Ig
s/\bBrg\b[.,:]\? \?\|\bBrig\b[.,:]\? \?/Brigadeiro /Ig
s/\bBr\.[^-] \?/Barão /Ig
s/\bCap\b[.,:]\?[^"] \?/Capitão /Ig
s/\bCb\b[.,:]\? \?/Cabo /Ig
s/\bComend\b[.,:]\? \?\|\bCdor\b[.,:]\? \?/Comendador /Ig
s/\bCel\b[.,:]\? \?/Coronel /Ig
s/\bCia\b[.,:]\? \?/Companhia /Ig
s/\bCient\b[.,:]\? \?/Cientista /Ig
s/\bCj\b[.,:]\? \?\|\bConj\b[.,:]\? \?/Conjunto /Ig
s/\bCmte\b[.,:]\? \?/Comandante /Ig
s/\bCons\b[.,:]\? \?\|\bCnso\b[.,:]\? \?/Conselheiro /Ig
s/\bDel\. \?/Delegado /Ig
s/\bDept\b[.,:]\? \?\|\bDep\b[.,:]\? \?/Deputado /Ig
s/\bDes\b[.,:]\? \?\|\bDesemb\b[.,:]\? \?/Desembargador /Ig
s/\bDa\. \?/Dona /Ig
s/\bDq\b[.,:]\? \?/Duque /Ig
s/\bDra\b[.,:]\?[^-] \?/Doutora /Ig
s/\bDr\b[.,:]\?[^-] \?/Doutor /Ig
s/\bEnfa\b[.,:]\? \?\|\bEnf\b[.,:]\? \?/Enfermeira /Ig
s/\bEnfo\b[.,:]\? \?/Enfermeiro /Ig
s/\bEng\b[.,:]\? \?/Engenheiro /Ig
s/\bEstud\b[.,:]\? \?/Estudante /Ig
s/\bExp\b[.,:]\? \?\|\bExped\b[.,:]\? \?/Expedicionário /Ig
s/\bFarm\b[.,:]\? \?/Farmacêutico /Ig
s/\bFaz\b[.,:]\? \?/Fazenda /Ig
s/\bFr\b[.,:] \?/Frei /Ig
s/\bGal\b[.,:]\? \?\|\bGen\b[.,:]\? \?/General /Ig
s/\([^.]\)\bGov\b[.,:]\? \?/\1Governador /Ig
s/\bIma\b[.,:]\? \?/Irmã /Ig
s/\bImo\b[.,:]\? \?/Irmão /Ig
s/\bInsp\b[.,:]\? \?/Inspetor /Ig
s/\bJorn\b[.,:]\? \?/Jornalista /Ig
s/\bJr\b[.,:]\? \?/Júnior /Ig
s/\bMte\b[.,:]\? \?/Monte /Ig
s/\bMª\b[.,:]\? \?/Maria /Ig
s/\bMto\b[.,:]\? \?/Maestro /Ig
s/\bMaj\b[.,:]\? \?\|\bMj\b[.,:]\?[^-"] \?/Major /Ig
s/\bMal\b[.,:]\? \?/Marechal /Ig
s/\bMin\b[.,:]\? \?/Ministro /Ig
s/\bMq\b[.,:]\? \?/Marquês /Ig
s/\bMqa\b[.,:]\? \?/Marquesa /Ig
s/\bMns\b[.,:]\? \?\|\bMons\b[.,:]\? \?/Monsenhor /Ig
s/\bMun\b[.,:]\? \?\|\bMunic\b[.,:]\? \?/Municipal /Ig
s/\bnsa\b[.,:]\? \?\|\bNssa\b[.,:]\? \?/Nossa /Ig
s/\bNs\b[.,:][^-"] \?\|\bN S\b[.,:]\? \?\|\bN Sra\b[.,:]\? \?/Nossa Senhora /Ig
s/\bPe\b[.,:]\? \?/Padre /Ig
s/\bPion\b[.,:]\? \?/Pioneiro /Ig
s/\bPiona\b[.,:]\? \?/Pioneira /Ig
s/\bPnt\b[.,:]\? \?/Pintor /Ig
s/\bPoe\b[.,:]\? \?/Poeta /Ig
s/\bPref\b[.,:]\? \?/Prefeito /Ig
s/\bPcza\b[.,:]\? \?/Princesa /Ig
s/\bPresb\b[.,:]\? \?/Presbítero /Ig
s/\bPres\b[.,:]\? \?\|\bPresid\b[.,:]\? \?/Presidente /Ig
s/\bProfa\b[.,:]\? \?\|\bProfª\b[.,:]\? \?\|\bPrfa\b[.,:]\? \?/Professora /Ig
s/\bProf\b[.,:]\? \?\|\bPrf\b[.,:]\? \?/Professor /Ig
s/\bProm\b[.,:]\? \?/Promotor /Ig
s/\bPr\b[.,:]\?[^-"] \?\|\bPst\b[.,:]\? \?/Pastor /Ig
s/\bQuim\b[.,:]\? \?/Químico /Ig
s/\bRad\b[.,:]\? \?/Radialista /Ig
s/\bReg\b[.,:]\? \?/Regente /Ig
s/\bRep\b[.,:]\? \?/República /Ig
s/\bRev\b[.,:]\? \?/Reverendo /Ig
s/\bSen\b[.,:]\?[^-"] \?/Senador /Ig
s/\bSold\b[.,:]\? \?\|\bSd\b[.,:] \?/Soldado /Ig
s/\bSgto\b[.,:]\? \?\|\bSrg\b[.,:]\? \?/Sargento /Ig
s/\bSra\b[.,:]\? \?/Senhora /Ig
s/\bSr\b[.,:]\?[^-"] \?/Senhor /Ig
s/\bSta\b[.,:]\? \?/Santa /Ig
s/\bSto\b[.,:]\? \?/Santo /Ig
s/\bStos\b[.,:]\? \?/Santos /Ig
s/\bTen\b[.,:]\? \?\|\bTte\b[.,:]\? \?/Tenente /Ig
s/\bVer\b[.,:]\? \?/Vereador /Ig
s/\bVisc\b[.,:]\? \?/Visconde /Ig
# espaços no inicio e no fim das tags
s/=" */="/Ig
s/\(.\) *"/\1"/Ig
# espaços duplos, espaços triplos...
s/\b \+\b/ /g
' < ./$1/entrada.osm > ./$1/validado.osm
echo Passo criando o OSC
# 4 criar um changeset com o que foi alterado para upload
osmosis --read-xml file="./$1/validado.osm" --read-xml file="./$1/entrada.osm" --derive-change --write-xml-change file="./$1/mudou.osc"
diff -y --suppress-common-lines ./$1/entrada.osm ./$1/validado.osm > ./$1/mudou.txt