Прочее - SED + XML

Ответить
Аватара пользователя
cantido

Прочее - SED + XML

Сообщение cantido »

Всем привет

Есть вот такой файл



Код:

Код: Выделить всё

<IIsWebServer   Location ="/LM/W3SVC/100"
                 ServerBindings="192.168.1.1:80:host.ca
                 192.168.1.1:80:www.host.ca"
                 ServerComment="host.ca"
          >
 </IIsWebServer>
 <IIsWebVirtualDir       Location ="/LM/W3SVC/100/Root"
     AccessFlags="AccessRead | AccessScript"
      AppFriendlyName=""
       AppIsolated="2"
        AppPoolId=".NET 1.1 AppPool"
         AppRoot="/LM/W3SVC/100/Root"
          AuthFlags="AuthAnonymous | AuthNTLM"
           DefaultDoc="main.html,Default.htm,Default.asp,Default.aspx"
            DirBrowseFlags="DirBrowseShowDate | DirBrowseShowTime | DirBrowseShowSize | DirBrowseShowExtension | DirBrowseShowLongDate | EnableDefaultDoc"
             HttpCustomHeaders="IISExport: This web site was exported using IIS Export v4.2
                      X-Powered-By: ASP.NET"
               Path="G:\wwwroot\host.ca"
                UNCPassword="4963446250000000060000004000000047130fbca69e30001123ca9169cddd51ae94eb333f90feb0d49ffc396e1ddbb36d29e71d40adae6721c6c7a9ad18558c37c38      6a332789d0adad9a1828fe47fa5f2be1403f949e05d"
         >
  </IIsWebVirtualDir>

Задача следующаю мне нужно его через sed распарсить так что бы была показана только переменная ServerBindings, а точнее то что между ее кавычек

Погуглил нашел. Вот такое







Код:

Код: Выделить всё

cat 1.xml | grep -e \.\*ServerBindings=\"\.\* | sed s/.*ServerBindings=\"//

Ответ вот такой

192.168.1.1:80:host.ca



но проблема в том что показывает только одну строку, а аттрибут записан в несколько.



Подскажите как быть
Аватара пользователя
Kent

Re: Прочее - SED + XML

Сообщение Kent »

Если в разбито только на две строки, то будет работать так (с вашим файлом):



Код:

Код: Выделить всё

grep -A1 ServerBindings 1.xml | sed 's/ServerBindings=//;s/^[ ^t]*//;s/\"//'
Ответить

Вернуться в «Общий по Linux»