2014-11-01 11 views
7

Wie kann die Anzahl der Spalten, die in hexdump gedruckt werden, von der Standardeinstellung 16 (auf 21) geändert werden?Wie ändere ich die Anzahl der gedruckten Spalten in `hexdump`?

Oder wo ich den Platz finden, kann das Standard Format-String in hexdump verwendet, um zu ändern, da die Anzahl verwendet zu ändern?

+6

Sie können versuchen, diese 'hexdump -e '21/1"% 02x "" \ n "'' –

+0

@gniourf_gniourf es funktioniert! Danke. –

+0

Hier finden Sie eine Antwort, die auch Informationen zum Standardformat enthält. –

Antwort

6

Es scheint, dass das Standardformat so erhaltene:

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

Von man hexdump:

Implement the -x option: 

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

Wenn Sie hexdump ‚s Format verstehen wollen, werden Sie das Handbuch lesen, aber hier ist ein kurzer Spaziergang durch das vorherige Format:

  • Der erste Teil %07.7_Ax\n ist der Teil, der die letzte Zeile anzeigt, die nur den Offset enthält. Per dem Handbuch:

    _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. 
    
  • Zum zweiten: Wir verstehen jetzt den "%07.7_ax " Teil. Die 8/2 bedeutet 8 Iterationen und 2 Bytes für die folgenden, nämlich "%04x ". Nach diesen haben wir eine neue Zeile: "\n".

Ich bin nicht wirklich sicher, wie Sie Ihre 21 Bytes wollen, vielleicht wäre dies tun:

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

und Sie wissen, wie der Offset, um loszuwerden, wenn nötig:

hexdump -e '21/1 "%02x " "\n"' 
Verwandte Themen