在 Linux 上使用 XXD 命令

您想要數據的十六進制轉儲(十六進制視圖)嗎? xxd 命令可以為您做到這一點。

與任何其他普通命令一樣,它從標準輸入或文件中獲取數據並提供十六進制輸出。 您也可以反過來將十六進制轉換為普通字符。

在本教程中,我將向您展示如何在 Linux 中使用 xxd 命令的不同示例。

在你的 Linux 系統上安裝 XXD

xxd 實用程序並未預安裝在大多數 Linux 發行版上,但可以使用默認包管理器輕鬆安裝。

為基礎Ubuntu/德比安:

                      
                        sudo apt install xxd
                      
                    

對於基於 Fedora/RHEL 的:

                      
                        sudo dnf install vim-common
                      
                    

對於基於 Arch 的發行版:

                      
                        sudo pacman -S xxd
                      
                    

Linux中XXD命令的使用方法

完成安裝後,您需要按照給定的命令語法來使用 xxd 命令:

                      
                        xxd [options] [file]
                      
                    

為了便於理解,我將使用名為 Sample.txt 整個教程,其中包含以下內容:

                      
                        Which Linux distro is your daily driver?
1. Ubuntu
2. Debian
3. RHEL
4. Fedora
5. Arch
6. Gentoo
7. LFS (The GOAT)
                      
                    

創建一個十六進制轉儲 Sample.txt 文件,我將使用以下命令:

                      
                        xxd Sample.txt
                      
                    

當然,您可以使用不同的選項來修改 xdd 命令的默認行為。 讓我來告訴你怎麼做。

修剪輸出 xxd 中的線

xxd 命令允許您修剪輸出中的行。

為此,您需要使用 -s 檢查並添加要跳過的前導行數:

                      
                        xxd -s [lines_to_skip] Filename
                      
                    

所以假設你想從第 5 行開始十六進制轉儲,這意味著你必須修剪前 4 行:

                      
                        xxd -s 0x40 Sample.txt
                      
                    

正如你所看到的,修剪前 4 行它給了我從第五行開始的十六進制轉儲。

但是如果你想得到最後幾行的十六進制轉儲你也可以那樣做!

要獲取行的最後一個數字 n 的十六進制轉儲,您需要按如下方式運行 xxd 命令:

                      
                        xxd -s -[Last_n_lines] Filename
                      
                    

所以假設我想獲取最後 3 行的十六進制轉儲,那麼我將使用以下內容:

                      
                        xxd -s -0x30 Sample.txt
                      
                    
obtenga el volcado hexadecimal de las últimas n líneas usando el comando xxd en Linux

指定列的長度

您可能想要指定要顯示的列數,而不是 xxd 默認顯示的列數 (10)。

為此,您必須使用 -c 檢查並添加應在輸出中顯示的列數:

                      
                        xxd -c [No_of_columns] Filename
                      
                    

假設我想要 4 列的輸出,那麼我將使用以下內容:

                      
                        xxd -c 4 Sample.txt
                      
                    
especifique el número de columnas en la salida en el comando xxd

指定輸出長度

它類似於我在如何修剪輸出中解釋的內容,但在這裡您可以指定從第一行開始需要多少行輸出。

要指定輸出長度,您所要做的就是使用 -l 檢查並指定您想要的輸出行數:

                      
                        xxd -l [Output_length_in_lines] Filename
                      
                    

所以假設我只想要十六進制轉儲的前 5 行,那麼我將使用以下內容:

                      
                        xxd -l 0x50 Sample.txt
                      
                    
especifique la longitud de salida en el comando xxd en Linux

獲取二進制輸出而不是十六進制

xxd 命令還允許您以二進製而不是十六進制獲取輸出!

這很簡單,二進制輸出可以使用 -b 旗幟:

                      
                        xxd -b Filename
                      
                    

在這裡,我轉換了我的文本文件 Sample.txt 二進制:

                      
                        xxd -b Sample.txt
                      
                    
convertir de texto a binario en linux

獲取大寫字母的十六進制輸出

您可能會遇到需要大寫字母輸出的情況。

您可以使用大寫字母輕鬆獲得十六進制輸出 -u 標誌如圖:

                      
                        xxd -u Filename
                      
                    
obtener salida hexadecimal en mayúsculas en Linux

再次將十六進制轉換為普通文本

因此,如果您將輸出從十六進制重定向到一個文件,則有一種方法可以很容易地將其恢復正常。

供您參考,我正在重做如何首先將十六進制轉儲的輸出重定向到文本文件的整個過程:

guarde el volcado hexadecimal en el archivo de texto en Linux

所以我將十六進制轉儲的輸出保存在 Hex.txt .

現在,如果我想閱讀 Hex.txt ,我將不得不進行轉換。 否則只是頭疼而已。

要扭轉這種影響,您將不得不使用 -r 標誌如圖:

                      
                        xxd -r Filename
                      
                    
convertir el volcado hexadecimal al texto normal

您想將十六進制轉換為 ASCII 嗎? 給你!

如果您想將十六進製字符串轉換為 ASCII,我們有一個用於該目的的詳細指南:

我希望你覺得本指南有用。

如果您有任何問題,請將其留在評論中。

相關文章