使用正则表达式简化KML中的点

时间:2011-11-17 10:28:13

标签: regex maps kml

我正在尝试减少我拥有的kml文件的文件大小。

多边形的坐标是准确的:

-113.52106535153605,53.912817815321503,0.

我对正则表达式不太满意,但我认为可以编写一个在逗号之前选择八个字符的单词。我会进行搜索和替换,结果将是

-113.521065,53.9128178,0.

任何正则表达专家认为这是可能的吗?

3 个答案:

答案 0 :(得分:0)

这可能有用。用昏迷替换8个字符和昏迷:s /(。{8}),/,/ g;

  

echo“-113.52106535153605,53.912817815321503,0。” | sed's /。\ {8 \},/,/'

所以你可以将你拥有的文件捕获到这样的sed命令:

  

cat file.kml | sed's /。\ {8 \},/,/'> newfile.kml

答案 1 :(得分:0)

试试这个

\d{8}(?=,)

并替换为空字符串

here on Regexr

答案 2 :(得分:0)

我必须做同样的事情。这是perl而不是sed,但它会查找一个包含八个不间断数字的字符串,然后在没有任何内容的情况下替换任意数量的不间断数字。它运作得很好。

cat originalfile.kml | perl -pe's /(?< = \ d {8})\ d * // g'> shortenedfile.kml