Domanda

tcpflow emette un gruppo di file, molti dei quali sono HTTP risposte da un server web. All'interno, essi contengono le intestazioni HTTP, tra cui Content-type:, e di altri importanti. Sto cercando di scrivere uno script che può estrarre solo carico utile di dati (ad esempio image / jpeg; text / html; et al.) E salvarlo in un file. [Opzionale: con un nome appropriato e l'estensione di file]

I caratteri EOL sono \ r \ n (CRLF) e quindi questo rende difficile da utilizzare in distro GNU (nelle mie esperienze).

ho cercato qualcosa sulla falsariga di:

sed /HTTP/,/^$/d  

Per eliminare tutto il testo dal principio di HTTP (incluso) fino alla fine del \ r \ n \ r \ n (incl), ma non ho trovato alcuna fortuna. Sto cercando aiuto da chiunque con una buona esperienza in sed e / o awk. Io ho zero esperienza con Perl, si prega di preferirei usare comuni utilità della riga di comando di GNU per questo

Trova un file di output di esempio tcpflow qui. (cattivo collegamento)

Grazie,
Felipe

È stato utile?

Soluzione

Questo articolo consiglia di eseguire foremost in uscita da tcpflow per estrarre le immagini. E 'disponibile in quel link e nei repository di (almeno) di Debian, Fedora e Ubuntu.

ho provato su file di esempio si è collegato al e sembrava funzionare bene.

foremost -i tcpflow.out

Ha creato una directory chiamata "uscita" con le sottodirectory chiamate "gif" e "JPEG" con i file in ciascuna. I nomi dei file non corrispondono i nomi dei file nelle intestazioni, però.

Per modificare la fine riga dei file fanno:

dos2unix filename

o in un tubo:

dos2unix < filename | nextcommand

Altri link di interesse:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top