файл cat, содержащий экранированные символы в netcat

888
Wei Shi

Я пытаюсь протестировать веб-сервер с некоторым HTTP-запросом, записанным в файле.

GET / HTTP/1.1\r\n\r\n 

Прямо сейчас я передаю этот файл netcatтак:

cat files | nc localhost 80 

Однако эти \r\nфайлы передаются непосредственно на веб-сервер (в результате получается 4 символа, то есть '\', 'r', '\', 'n'). Как я могу кормить этот файл, чтобы символы были экранированы правильно?

0

1 ответ на вопрос

1
shellter

\r\n являются кодами, используемыми в операторе printf для генерации окончаний строк CarridgeReturn / NewLine, используемых в DOS / Windows.

Так как вы используете cat, вы используете какой-то вариант unix, который используется только \nкак конец строки. НО вам не нужно, чтобы этот символ появлялся в файле. Просто попробуйте удалить эти значения (оставив реальный перевод строки в конце строки).

Пример тестового файла сейчас =

GET / HTTP/1.1 blah-blah  GET / HTTP/1.1 blah2 

ИЛИ, если вам действительно нужно интерпретировать \r\nзначения, встроенные в файл, вы можете интерпретировать файл с помощью утилиты printf, т.е.

$ cat printf_inputtest.txt GET / HTTP/1.1\r\n\r\n GET / HTTP/1.1\r\n\r\n $ printf "$( < printf_inputtest.txt )" GET / HTTP/1.1   GET / HTTP/1.1  $  

Надеюсь, это поможет.

@Usavich: пожалуйста, посмотрите мои последние изменения. Я считаю, что я решил вашу проблему именно так, как просили. Удачи. shellter 12 лет назад 0

Похожие вопросы