我创建了一个 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
) 开头,则所有数字不是括号内的内容\(\)
被删除。