PDA

Показать полную графическую версию : SED + XML


cantido
30-05-2014, 01:01
Всем привет
Есть вот такой файл


<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="4963446250000000060000004000000047130fbca69e30001123ca9169cddd51ae94eb333f90feb0d49ffc396e1ddbb36d29 e71d40adae6721c6c7a9ad18558c37c38 6a332789d0adad9a1828fe47fa5f2be1403f949e05d"
>
</IIsWebVirtualDir>

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



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


Ответ вот такой
192.168.1.1:80:host.ca

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

Подскажите как быть

Kent
30-05-2014, 11:04
Если в разбито только на две строки, то будет работать так (с вашим файлом):
grep -A1 ServerBindings 1.xml | sed 's/ServerBindings=//;s/^[ ^t]*//;s/\"//'




© OSzone.net 2001-2012