坐标 X237595Y81600 至 X2375Y8160

坐标 X237595Y81600 至 X2375Y8160

我创建了一个 gerber 文件,其中的行如下所示:

X90095Y15350
X100095Y15350
X110095Y15350
X120095Y15350
X120095Y25350
X110095Y25350
X100095Y25350
X90095Y25350
X80095Y25350
X160095Y25350

这些是钻探路径的坐标 - 请注意X。后面的数字X变化 - 有时是 6 位数字,有时是 5 位数字。


现在我需要一个脚本,它首先识别该行是否以X然后使用sed或任何其他 Linux 工具将其转换为以下格式X都是 4 位长,因此该行:

X160095Y25350

变成:

X1600Y2535

谁能帮我。我在正则表达式方面有点太弱了,无法自己解决这个问题...如果有任何其他命令可以做到这一点,那就没问题了。


添加

提供的 anwser 工作正常,我可以用它来重新格式化我的文件。将其上传到我的应用程序后,我注意到我们进行了错误的转换。

我对此感到抱歉,但现在我知道需要做什么。因此,如果一行以“X”开头,我们只需删除 X 和 Y 之后的最后一位数字。例如,如果我有:

X90095Y15350
X100095Y15350
X110095Y15350

我需要删除每个位置(X 和 Y)的最后一位数字:

X9009Y1535
X10009Y1535
X11009Y1535

有人可以帮我解决这个问题吗? =/

答案1

尝试这个:

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

如果行以 X ( ^X) 开头,则所有数字不是括号内的内容\(\)被删除。

相关内容