Linux
正則表達式修復 GPS 數據
我正在尋找在 Linux 上修復文本文件中的 GPS 數據
不正確的字元串模型:
49:29:37N 005:28:39E
2or3digits:2or3digits:2or3digits(N|S) 2or3digits:2or3digits:2or3digits(E|W)
正確的字元串模型:
49:29:37 N 005:28:39 E
2or3digits:2or3digits:2or3digits (N|S) 2or3digits:2or3digits:2or3digits (E|W)
任何人都可以幫我做到這一點?
謝謝
尼古拉斯
如果您只想在數字和代表指南針方向的字母之間添加一個空格,我認為可以這樣做:
sed -E 's/([0-9]{2,3}:[0-9]{2,3}:[0-9]{2,3})([NS])\s+([0-9]{2,3}:[0-9]{2,3}:[0-9]{2,3})([EW])/\1 \2 \3 \4/g' input.txt
或者不指定
input.txt
, 來自標準輸入的管道,如果您希望在文件中輸出,請> output.txt
在末尾添加。這允許在 N/S 和開始下一個座標的數字之間有任意數量的空格或其他空白字元,並在該位置輸出一個空格。如有必要,可以進行調整。
編輯:如果某些輸入數據在座標編號和兩個座標之一的方向字母之間已經有空格,但不是兩者都有,請嘗試:
sed -E 's/([0-9]{2,3}:[0-9]{2,3}:[0-9]{2,3}) *([NS])\s+([0-9]{2,3}:[0-9]{2,3}:[0-9]{2,3}) *([EW])/\1 \2 \3 \4/g' input.txt
在所有四個可能的字母之前插入一個空格
sed
:sed 's/[NESW]/ &/g' file
輸出:
49:29:37 N 005:28:39 E