Я только начал использовать sed и у меня возникли проблемы при использовании sed из Apache mod_seq. Задача состоит в том, чтобы изменить запись веб-службы на запись загрузки файла. Content-Type уже был изменен с помощью mod_headers, и задача здесь состоит в том, чтобы изменить тело запроса.
Тело запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://tracx.de/pkp/interfaces/msg/1.0" xmlns:ns1="http://tracx.de/pkp/interfaces/core/1.0"><soapenv:Header/><soapenv:Body><ns:test>Hello World</ns:test></soapenv:Body></soapenv:Envelope>
1) нормально протестируйте с помощью sed из командной строки:
sed "s/^.*$/--AaB03x\nContent-disposition: form-data; name=\"xmlfile\"; filename=\"myfile.xml\"\nContent-Type: text\/xml\n\n&\n--AaB03x--\n/" request.xml
Вывод, как и ожидалось, с переводом строки
--AaB03x Content-disposition: form-data; name="xmlfile"; filename="myfile.xml" Content-Type: text/xml <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://tracx.de/pkp/interfaces/msg/1.0" xmlns:ns1="http://tracx.de/pkp/interfaces/core/1.0"><soapenv:Header/><soapenv:Body><ns:test>Hello World</ns:test></soapenv:Body></soapenv:Envelope> --AaB03x--
2) вызов Sed с помощью Apache mod_sed:
InputSed "s/^.*$/--AaB03x\nContent-disposition: form-data; name=\"xmlfile\"; filename=\"myfile.xml\"\nContent-Type: text\/xml\n\n&\n--AaB03x--\n/"
Вывод из mod_sed при поступлении запроса в мое веб-приложение. Обратите внимание на "п" вместо новой строки.
--AaB03xnContent-disposition: form-data; name="xmlfile"; filename="myfile.xml"nContent-Type: text/xmlnn<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://tracx.de/pkp/interfaces/msg/1.0" xmlns:ns1="http://tracx.de/pkp/interfaces/core/1.0"><soapenv:Header/><soapenv:Body><ns:test>monday</ns:test></soapenv:Body></soapenv:Envelope>n--AaB03x--n
Я попытался с '' и '' я команда InputSed. И пробовал с 1, 2, 3 и 4 пробелами перед моими управляющими символами (\r и \n). Похоже, что Apache или mod_sed игнорируют символ обратной косой черты.
Кто-нибудь знает, есть ли какие-то особые проблемы с mod_sed и обратной косой чертой?