Назад | Перейти на главную страницу

Получение разных значений конкретной переменной из файла в UNIX

У меня есть файл, который я хотел бы проанализировать, чтобы извлечь из него определенные значения. Я не знаю, какую команду и синтаксис мне следует использовать (возможно, sed?).

Ниже приведены 2 примера строк, которые я мог бы ожидать найти в файле. Что мне нужно, так это ценность name (т.е. 1234 и xyz соответственно в примере), а также значение jndiName.

factories xmi:type="resources.url:URL" xmi:id="" name="1234" jndiName="xyz_aBC" 

factories xmi:type="resources.url:URL" xmi:id="URL_1323780357724" name="xyz" jndiName="abc" 

Если я использую sed, как бы я применил это в этой ситуации?

Обычно это считается неразумным чтобы попытаться проанализировать xml с помощью стандартных утилит unix. Я использовал xml2 утилита для синтаксического анализа файлов xml, а затем используйте grep / awk / sed и т. д., чтобы делать то, что я хочу.

Намекнув, что вы можете рассмотреть возможность использования регулярных выражений (sed) для анализа XML-файла, вы произнесли заклинание, которое приведет вас в пасть безумия! пожалуйста перемена назад!

xmlstarlet также является хорошей альтернативой для синтаксического анализа xml в оболочке, если по религиозным причинам его нельзя использовать, например. perl XML :: Simple;)