Coordena X237595Y81600 para X2375Y8160

0

Eu criei um arquivo gerber e tem linhas dentro das quais se parecem com isso:

X90095Y15350
X100095Y15350
X110095Y15350
X120095Y15350
X120095Y25350
X110095Y25350
X100095Y25350
X90095Y25350
X80095Y25350
X160095Y25350

Estas são as coordenadas do caminho da perfuração - lembre-se do X e do Y . O número após o X e Y varia - às vezes é um dígito de 6 dígitos e, às vezes, de 5 dígitos.

Agora eu preciso de um script que primeiro identifique se a linha começa com um X e use sed ou qualquer outra ferramenta Linux para converter isso em um formato onde < strong> X e Y têm dois dígitos de comprimento para que a linha:

X160095Y25350

torna-se:

X1600Y2535

Alguém pode me ajudar. Eu sou um pouco fraco em expressões regulares para resolver isso sozinho ... Se existe algum outro comando que faria isso, tudo estaria bem.

ADICIONAR

O analisador fornecido está funcionando bem e eu poderia usá-lo para reformatar meu arquivo. Depois de enviá-lo para o meu aplicativo, percebi que fizemos uma conversão incorreta.

Sinto muito por isso, mas agora sei o que precisa ser feito. Então, se uma linha começa com um "X", temos apenas que remover o último dígito de números depois de X e Y. Por exemplo, se eu tiver:

X90095Y15350
X100095Y15350
X110095Y15350

Eu preciso remover o último dígito de todas as posições (X e Y):

X9009Y1535
X10009Y1535
X11009Y1535

Alguém poderia me ajudar com este? = /

    
por 71GA 06.02.2015 / 10:51

1 resposta

1

Tente isto:

sed 's/\(^X[[:digit:]]\{4\}\)[[:digit:]]*\(Y[[:digit:]]\{4\}\)[[:digit:]]*//'

Se a linha começar com X ( ^X ), todos os dígitos não entre parênteses \(\) serão excluídos.

    
por 06.02.2015 / 11:12