2014-11-01 2 views
7

Как изменить количество столбцов, напечатанных в hexdump, по умолчанию 16 (до 21)?Как изменить количество столбцов, напечатанных в `hexdump`?

Или где я могу найти место для изменения по умолчанию строка, используемая в hexdump, чтобы изменить номер, используемый там?

+6

Вы можете попробовать этот 'hexdump -e '21/1"% 02x "" \ n "'' –

+0

@gniourf_gniourf, он работает! Спасибо. –

+0

Пожалуйста, найдите ответ, который также содержит информацию о формате по умолчанию. –

ответ

6

кажется, что формат по умолчанию получается таким образом:

hexdump -e '"%07.7_Ax\n"' -e '"%07.7_ax " 8/2 "%04x " "\n"' 

От man hexdump:

Implement the -x option: 

     "%07.7_Ax\n" 
     "%07.7_ax " 8/2 "%04x " "\n" 

Если вы хотите, чтобы понять формат hexdump «s, Вы должны будете прочитать инструкцию, но вот короткая прогулка по предыдущему формату:

  • Первая часть %07.7_Ax\n - это та часть, которая отображает последнюю строку, содержащую только смещение. За руководство:

    _a[dox]  Display the input offset, cumulative across input files, of the 
          next byte to be displayed. The appended characters d, o, and x 
          specify the display base as decimal, octal or hexadecimal 
          respectively. 
    
    _A[dox]  Identical to the _a conversion string except that it is only 
          performed once, when all of the input data has been processed. 
    
  • Для второй: мы теперь понимаем "%07.7_ax " часть. 8/2 означает 8 итераций и 2 байта для следующих, а именно, "%04x ". Наконец, после этого у нас есть новая строка: "\n".

Я не совсем уверен, как вы хотите, чтобы ваши 21 байт, может быть, это будет делать:

hexdump -e '"%07.7_Ax\n"' -e '"%07.7_ax " 21/1 "%02x " "\n"' 

и вы знаете, как избавиться от смещения, если это необходимо:

hexdump -e '21/1 "%02x " "\n"' 
Смежные вопросы