2014-11-01 11 views
7

Làm cách nào để thay đổi số cột được in trong hexdump từ mặc định 16 (thành 21)?Làm cách nào để thay đổi số cột được in trong `hexdump`?

Hoặc nơi tôi có thể tìm nơi thay đổi chuỗi định dạng mặc định được sử dụng trong hexdump để sửa đổi số được sử dụng ở đó?

+6

Bạn có thể thử 'hexdump -e '21/1 "% 02x" "\ n"' ' –

+0

@gniourf_gniourf nó hoạt động! cảm ơn bạn. –

+0

Vui lòng tìm câu trả lời cũng chứa thông tin về định dạng mặc định. –

Trả lời

6

Dường như định dạng mặc định là thu được như sau:

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

Từ man hexdump:

Implement the -x option: 

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

Nếu bạn muốn hiểu định dạng hexdump 's, bạn sẽ phải đọc những hướng dẫn, nhưng dưới đây là một đoạn đi bộ ngắn qua định dạng trước:

  • Phần đầu tiên là %07.7_Ax\n là phần hiển thị dòng cuối cùng chỉ chứa giá trị offset. Theo hướng dẫn sử dụng:

    _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. 
    
  • Thứ hai: bây giờ chúng tôi hiểu phần "%07.7_ax ". 8/2 có nghĩa là 8 lần lặp lại và 2 byte cho các mục sau, cụ thể là, "%04x ". Cuối cùng, sau đó, chúng tôi có một dòng mới: "\n".

Tôi không thực sự chắc chắn làm thế nào bạn muốn 21 byte của bạn, có lẽ điều này sẽ làm:

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

và bạn biết làm thế nào để thoát khỏi sự bù đắp, nếu cần thiết:

hexdump -e '21/1 "%02x " "\n"' 
Các vấn đề liên quan