Hp-Ux
HP-UX 的“xxd -p”替代方案 - 如何使用“xd”獲得相同的結果?
我有一個在工作中非常方便的命令。它使用FILENAME在一些十六進制原始文件中搜尋某個字元串。我在 Linux 系統中一直使用的命令是:
find . -name '**FILENAME**' | while read filename; do xxd -p $filename | tr -d '\n' | grep -i "**STRING**" > /dev/null if [ $? -eq 0 ];then echo "STRING FOUND IN $filename"; fi; done
我沒有建構這個命令。在 HP-UX 系統上,由於 xxd 不存在,我需要使用 xd。但我不知道如何獲得與 xxd -p 相同的結果。
如何調整此命令以在 HP-UX 系統上執行?
我不在 HP-UX 上,因此僅針對xd(1)進行了檢查:
xd -b -An -v $filename
-An
防止顯示偏移-b
預設為單字節,(八進製表示od
,十六進製表示xd
)-v
防止相同的行被替換為*
(很多系統,包括我的,都有
od
但沒有xd
。所以為了便攜性,我od -tx1 -An -v $filename
改用了。)這將輸出單獨的十六進製字節,每個字節之間有一個空格。
tr
將命令更改為tr -d [:space:]
將刪除所有空格,而不僅僅是換行符。將所有這些結合在一起,您需要替換腳本的
xxd
和tr
部分,以便該行如下所示:xd -b -An -v $filename | tr -d '[:space:]' | grep -i "**STRING**" > /dev/null