У меня большой XML файл с несколькими экземплярами строки REPLACEME
. Во втором файле у меня есть список строк (которые содержат запятые), таких как:
58,-21,0
234,-38,0
Я хотел бы заменить каждый экземпляр REPLACEME
в первом файле одним из значений из второй файл, а затем перейти к следующему экземпляру.
Я посмотрел на bash (sed, awk, perl) и Powershell. Мне сказали, что я не должен использовать циклы, но использовать циклы файлов и анализировать файл обратно. Поэтому я попробовал это:
file2=/file2.txt
while IFS= read -r line; do
printf '%s\n' "$line"
sed '0,/REPLACEME/s//$line/' /file1.xml
done < "$file2"
Но это ничего не делает. Возможно, потому что файлы XML имеют символы? Это не ошибка, это просто ничего не делает.
Рад полностью отказаться от моего кода или переключить парсеры, если я могу найти что-то, что может достичь результата замены?
РЕДАКТИРОВАТЬ: Задано для примера XML. Разметка XML является частью файла KML, строки являются координатными точками. Пример ниже:
<Placemark>
<name>5005</name>
<MultiGeometry>
<Polygon>
-snip-
</Polygon>
<Point>
<gx:drawOrder>1</gx:drawOrder>
<coordinates>REPLACEME</coordinates>
</Point>
</MultiGeometry>
</Placemark>
В этом файле сотни таких записей, которые необходимо заполнить, используя соответствующие координаты из списка в файле 2.