Я ищу команду sed, чтобы очистить некоторые файлы kml, которые у меня есть. Файлы находятся на одной линии и посмотреть, как этотКоманда Sed delete перед первым экземпляром и после последнего
<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>.*$//'
Что я знаю все ближе, но все еще не