чтение побайтного файла в hexdump в shell / awk - PullRequest
0 голосов
/ 22 октября 2011

Я новичок в программировании на bash / awk, и скоро мне нужна ваша помощь.

Это шестнадцатеричный выходной пакет tcp ipv6, захваченный через tcpdump -

 6000 0000 0018 0620 0000 0000
 0000 0000 0000 0000 0000 0001 0000 0000
 0000 0000 0000 0000 0000 0002 *0026 0026
 0000 0001 0000 0002 {5}412 0065 0034 0000*
 6162 6364    

{5} задаетДлина tcp-пакета в 32-битных словах и tcp-пакета - ч / б * с.

 (* and {} are used to clear the question ,they are not 
  present actually in output)

Теперь мне нужно извлечь заголовок tcp из этой информации, используя скрипт bash / awk.

IЯ думаю, что мне нужно прочитать файл побайтно до указанной длины tcp, но я не знаю, как это сделать.

Так что любая идея, как я могу извлечь информацию tcp из вывода, указанного выше, предполагает, что она была записана вфайл.

Заранее спасибо ..

1 Ответ

1 голос
/ 25 октября 2011

Используйте функцию awk, которая позволяет вам установить, какие символы используются для RecordSeparator (RS) и OutputRecordSeperator (ORS), и использовать переменную NumberRecord (NR), чтобы отслеживать, какую часть записи вы печатаете.

awk '{BEGIN RS=" ";ORS="\n";} { if (NR >20 && NR < 31) print $0}' hexFile

Если вы дадите более подробную информацию о своем файле (как выглядят повторяющиеся наборы этих данных?) И ожидаемом выводе, я, вероятно, могу сделать это еще более эффективным для вас.

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

...