Мне нужно выбрать определенный набор тегов, который содержит определенное значение внутри тега. Например, ниже находится источник.XML-файл
<main tag>
<subTag1>1298</subTag1>
<subTag2>fg</subTag2>
<subTag3>34</subTag3>
</main tag>
<main tag>
<subTag1>1299</subTag1>
<subTag2>cfinfo</subTag2>
<subTag3>43</subTag3>
</main tag>
<main tag>
<subTag1>1300</subTag1>
<subTag2>BBcycle</subTag2>
<subTag3>55</subTag3>
</main tag>
Мне нужно выбрать все содержимое значений основного тега, значение subTag1 которых равно 1300, в другой XML. Ожидаемый результат, если значение subTag1 задано как 1300, приведено ниже.(Результат.XML)
<main tag>
<subTag1>1300</subTag1>
<subTag2>BBcycle</subTag2>
<subTag3>55</subTag3>
</main tag>
Точно так же мне нужно выбрать элементы основного тега с набором значений subTag1.Ожидаемый результат, если значение subTag1 задано как 1299 и 1300, ниже.(Результат.XML)
<main tag>
<subTag1>1299</subTag1>
<subTag2>cfinfo</subTag2>
<subTag3>43</subTag3>
</main tag>
<main tag>
<subTag1>1300</subTag1>
<subTag2>BBcycle</subTag2>
<subTag3>55</subTag3>
</main tag>
PS: между тегами нет разрыва строки, добавлено для лучшего понимания. В реальном случае есть много основных тегов, и у меня есть набор значений SubTag1 для выборки соответствующих блоков основного тега, как в примере выше (для создания в одном результирующем XML-файле). Было бы целесообразно, чтобы пользователь сценария мог предоставить набор значений subTag1 для поиска в SOURCE.XML.
Я думал об использовании grep, но это не поможет в выборе набора тегов. Мне нужно сделать это с помощью сценариев оболочки UNIX.