cat-Datei, die an netcat maskierte Zeichen enthält

979
Wei Shi

Ich versuche, einen Webserver mit einer in einer Datei geschriebenen HTTP-Anforderung zu testen.

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

Im Moment füttere ich diese Datei, um netcatdies zu mögen:

cat files | nc localhost 80 

Die \r\nDateien in den Dateien werden jedoch direkt an den Webserver übertragen (was zu 4 Zeichen führt, dh '\', 'r', '\', 'n'). Wie kann ich diese Datei so füttern, dass Zeichen mit Escape-Zeichen korrekt maskiert werden?

0

1 Antwort auf die Frage

1
shellter

\r\n sind die Codes, die in einer printf-Anweisung zum Generieren von von DOS / Windows verwendeten CarridgeReturn / NewLine-Zeilenenden verwendet werden.

Da Sie cat verwenden, verwenden Sie eine Unix-Variante, die nur \nals Zeilenende verwendet wird. ABER Sie müssen dieses Zeichen nicht in der Datei enthalten. Versuchen Sie einfach, diese Werte zu entfernen (lassen Sie am Ende der Zeile einen echten Zeilenumbruch).

Beispiel Testdatei jetzt =

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

ODER wenn Sie \r\ndie in der Datei eingebetteten Werte wirklich interpretieren müssen, können Sie die Datei mit der Printf-Utiltity interpretieren, d. H

$ 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  $  

Ich hoffe das hilft.

@Usavich: bitte sehen Sie meine letzten Änderungen. Ich glaube, ich habe dein Problem genau wie gewünscht gelöst. Viel Glück. shellter vor 12 Jahren 0