Есть такой вот XML-файл
</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\trimurti.ca" UNCPassword="4963446250000000060000004000000047130fbca69e30001123ca9169cddd51ae94eb333f9
0feb0d49ffc396e1ddbb36d29e71d40adae6721c6c7a9ad18558c37c386a332789d0adad9a1828fe
4
7fa5f2be1403f949e05d">
Мне один из участников форума написал скрипт, вот это он
#!/bin/bash
read_file () {
local IFS=\>
read -d \< ENTITY CONTENT
local RET=$?
TAG_NAME=${ENTITY%% *}
ATTRIBUTES=${ENTITY#* }
return $RET
}
parse () {
if [[ $TAG_NAME = "IIsWebServer" ]] ; then
eval local $ATTRIBUTES
echo " $ServerBindings"
echo " $ServerComment"
elif [[ $TAG_NAME = "IIsWebVirtualDir" ]] ; then
eval local $ATTRIBUTES
echo "Path=\"$Path"
fi
}
while read_file; do
parse
done
Работает он отлично, вот только не отображает обратные слеши с содержимого Path -> Path="G:\wwwroot\trimurti.ca", скрипт выводит вот так Path="G:wwwroottrimurti.ca... Помогите пожалуйста, что нужно поменять в скрипте, что бы выводились и обратные слеши.
XML - файл
Модератор: Модераторы разделов
-
/dev/random
- Администратор
- Сообщения: 5458
- ОС: Gentoo
Re: XML - файл
Особо в скрипте не разбирался, но попробуйте заменить read на read -r.
-
god_of_vi
- Сообщения: 28
- ОС: Archlinux
Re: XML - файл
/dev/random писал(а): ↑09.08.2013 15:03Особо в скрипте не разбирался, но попробуйте заменить read на read -r.
Вот такой вывод
cat MetaBase.xml | ./script11.sh > mmm
./script11.sh: line 5: read: `<': not a valid identifier
Спасибо, но не то
/dev/random писал(а): ↑09.08.2013 15:03Особо в скрипте не разбирался, но попробуйте заменить read на read -r.
Извиняюсь, вы правы) получилось!
Не туда ключ -r поставил)
Большое спасибо)