2017-10-28 397 views
0

我正在使用Catfish來查找包含特定文本的文件。一些找到的文件而不是純文本包含看起來像一個十六進制轉儲的東西:命令將hexdump轉換回文本

3c3f 7068 700a 0a66 756e 6374 696f 6e20 
7573 6572 5f65 7869 7374 7328 2475 6e29 
207b 0a09 7265 7475 726e 2074 7275 653b 
0a7d 0a0a 0a3f 3e00 0000 0000 0000 0000 

I.e.總是8列,每行包含16個字節。上面一行應

 
<?php 
function 

是否有UNHEX命令文件和打印的內容?

回答

4

使用xxd使用revert選項-r

xxd -p -r file.txt 

給出

<?php 

function user_exists($un) { 
     return true; 
} 


?> 
012結果
3

使用bash:

for block in $(cat file); do 
    [[ $block =~ (..)(..) ]] && echo -en "\x${BASH_REMATCH[1]}\x${BASH_REMATCH[2]}" 
done 

輸出:

<?php 

function user_exists($un) { 
     return true; 
} 


?> 
0
echo -e "$(sed -r '[email protected]\s*([a-f0-9][a-f0-9])\s*@\\U\[email protected]' < test.txt | tr -d '\n')" 

從開始,從本場比賽的結束,並將其轉換爲Unicode字符去掉空格(G是全球sostitution和-r啓用擴展的正則表達式的sed的正則表達式捕獲夫婦的兩個十六進制字符和零個或多個空格)。

TR刪除換行出現在文件中

回聲-e轉換的Unicode到ASCII字符

+0

請添加說明,以提高你的答案的質量,幫助人們瞭解您的建議解決方案正在工作 –