Есть такой вот 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... Помогите пожалуйста, что нужно поменять в скрипте, что бы выводились и обратные слеши.
LinuxForum.Fans
Вывод \ в XML-файле
Автор: 4ubaka4ub
6 сообщений
1618 просмотров
Какая изначальная цель преобразования?
Распарсеный вид должен быть такой:
63.246.13.245:80:aquaknoxbeach.net
63.246.13.245:80:www.aquaknoxbeach.net
Path="G:\wwwroot\aquaknox_net
Спасибо
echo "Path=\"$Path"
Попробуйте заменить на
text
echo -E "Path=\"$Path\""Попробуйте заменить на
Если нужно именно так — без последней закрывающей двойной прямой кавычки:
Path="G:\wwwroot\aquaknox_net
...то
text
echo -E "Path=\"$Path"Не, выводит тоже самое, бекслеши не учитываются
Войдите или зарегистрируйтесь, чтобы ответить.