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.
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? = /