Файл cat, содержащий экранированные символы в netcat
Я пытаюсь протестировать веб-сервер с некоторым HTTP-запросом, записанным в файле.
GET / HTTP/1.1\r\n\r\n
Прямо сейчас я передаю этот файл netcat
как это:
cat files | nc localhost 80
Тем не менее \r\n
в файлах передаются непосредственно на веб-сервер (в результате 4 символа, то есть '\','r','\','n'). Как я могу кормить этот файл так, чтобы символы были экранированы правильно?
1 ответ
\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
$
Надеюсь, это поможет.