echo -n "XXXXXX" |od --width=64 -t x1 |awk 'NR==1{gsub("0000000","",$0);gsub("2e","03",$0);gsub(" ","",$0);printf"|%s|\n",$0}'
这段命令的核心作用是把指定的字符串(XXXXXX)转换成十六进制格式,然后对特定的十六进制值做替换,最后去除多余字符并格式化输出
逐部分解析:
# 1. echo -n “XXXXXX”:输出字符串”XXXXXX”,-n 表示不换行(避免默认添加的换行符干扰)
# 2. |od –width=64 -t x1:管道符传递输出给od命令 # –width=64:每行显示64个字节(避免换行,适配6字符输入) # -t x1:以单字节十六进制格式输出(每个字符对应1个十六进制值)
# 3. |awk ‘…’:管道符传递od的输出给awk处理,核心逻辑在大括号内
|awk ‘
NR==1{ # 只处理第一行输出(od的第一行是有效数据,后续无内容)
gsub(“0000000″,””,$0); # 移除od默认的行首地址标识”0000000″
gsub(“2e”,”03″,$0); # 把所有”2e”(十六进制的”.”)替换成”03″
gsub(” “,””,$0); # 移除所有空格(od输出的十六进制值之间有空格)
printf”|%s|\n”,$0; # 格式化输出,给处理后的字符串前后加|,换行
}
‘
Categories:
系统运维