Linux

座標 X237595Y81600 到 X2375Y8160

  • February 6, 2015

我創建了一個 gerber 文件,裡面有如下行:

X90095Y15350
X100095Y15350
X110095Y15350
X120095Y15350
X120095Y25350
X110095Y25350
X100095Y25350
X90095Y25350
X80095Y25350
X160095Y25350

這些是鑽孔路徑的座標——注意XY。****XY之後的數字不同 - 有時是 6 位,有時是 5 位。


現在我需要一個腳本,它首先確定該行是否以X開頭,然後使用sed或任何其他 Linux 工具將其轉換為XY均為 4 位長的格式,以便該行:

X160095Y25350

變成:

X1600Y2535

誰能幫我。為了自己解決這個問題,我在正則表達式方面有點太弱了……如果有任何其他命令可以做到這一點,那也很好。


添加

提供的 anwser 工作正常,我可以用它來重新格式化我的文件。將其上傳到我的應用程序後,我注意到我們進行了錯誤的轉換。

我對此感到抱歉,但現在我知道需要做什麼了。因此,如果一行以“X”開頭,我們只需刪除 X 和 Y 之後的最後一位數字。例如,如果我有:

X90095Y15350
X100095Y15350
X110095Y15350

我需要刪除每個位置(X 和 Y)的最後一位數字:

X9009Y1535
X10009Y1535
X11009Y1535

有人可以幫我解決這個問題。=/

試試這個:

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

如果行以 X ( ) 開頭,則刪除不在括號內的^X所有數字。\(\)

引用自:https://unix.stackexchange.com/questions/183274