Задача:Получить значение атрибута из XML-тегов с помощью сценария оболочки и конвертировать в CSV
Я пытаюсь получить значение атрибута из XML-тегов с помощью сценария оболочки, разделить значение и сохранить их в CSV-файле.
Это как XML выглядит следующим образом:
<host>
<servers>
<server name="Type1Name1-Port1" >...</server>
<server name="Type2Name2-Port2" >...</server>
<server name="Type3Name3-Port3" >...</server>
...
<server name="TypexNamex-Portx" >...</server>
</servers>
</host>
Я хотел бы получить значение от «имени» и разделить атрибут по их как следующему:
Type;Name;Port
Выхода CSV-файл Я хочу, должен выглядеть следующим образом:
Type1;Name1;Port1
Type2;Name2;Port2
Type3;Name3;Port3
...
Typex;Namex;Portx
проблема:
- Я ничего не могу установить на сервере
- я могу использовать только "КШ-AWK"/"xmllint wihtout --xpath"/"стандартные команды Linux"
я могу используйте любой shell-язык, который я хочу. Я предпочитаю bash и ksh.
Мои вопросы:
- Как вы думаете, можно решить мою задачу?
- Каков наилучший подход для подзадач? (Чтение, расщепление, запись)
РЕДАКТИРОВАТЬ:
Пример данные имя-сервера в:
Т-TTT_AAA-А-ССС-РРРР
Где T представляет тип, A имя приложения, S имя сервера, P порт. Длина T, A и S является переменной. P постоянна.
Да, это должно быть возможно с соединением 'xmllint --shell' и' awk' или ' sed'. Что такое разделитель между вашими «Type1» и «Name1»? Капитализация? – Aserre
Не могли бы вы показать пример с использованием реальных данных (или данных, имеющих форму, аналогичную той, что у вас есть)? Это должно быть важно для части awk – Aserre
@Aserre .. Done .. –