我正在寻找一个sed命令来清理我所拥有的一些kml文件。这些文件都在同一行,看起来像这样在第一个实例之前和之后删除Sed命令
<some text><kml><Document><name> Name </name><Placemark><name> Hotel 01 </name></Placemark><Placemark><name> Hotel 02 </name></Placemark><Placemark><name> Hotel 03 </name></Placemark></Document></kml>
理想我唯一想要的部分开始(包括)第一<Placemark>
元素到最后(含)</Placemark>
元素,并从所有这些部分kml文件输出到单个文件。
我很高兴在第一<Placemark>
之前可以删除所有文字和最后</Placemark>
后删除所有文字,或命令的第一<Placemark>
后,最后</Placemark>
之前的内容中提取的命令。
,我已经成功地一起迄今为止别别扭扭的命令是:
find . -name 'kmlFiles00*' -exec sed -r 's/^.{879}/ /' {} \; | sed -e 's/<\/Document><\/kml>//g' > placemarks_`date +%d-%m-%Y`.list
这在摆脱第879个字符的已经工作,然后将其输出到所有决赛前去除</Document></kml>
所有实例文件,但这是相当混乱,所以我正在寻找一个更干净的命令。我也曾尝试
sed -e 's/^.*<Placemark> //' -e 's/<\/Placemark>.*$//'
我知道越来越近,但仍然无法