我有2个文件:1.txt和2.txt,都包含十六进制字符。
1.txt : AFCD271E1EF7B1C3
2.txt : AD6DD9F49F562AF0
我需要一个命令linux来获取文件" 3.txt"结果是xt-ing数据内容为1.txt和2.txt。
E.g:
3.txt : 2A0FEEA81A19B33
提前致谢。
答案 0 :(得分:0)
创建xorfiles脚本,chmod + x xorfiles,xorfiles 1.txt 2.txt> 3.txt
#!/bin/bash
file1=$(echo| cat $1)
file2=$(echo | cat $2)
#xor $file1 $file2
function xor()
{
local res=(`echo "$1" | sed "s/../0x& /g"`)
shift 1
while [[ "$1" ]]; do
local one=(`echo "$1" | sed "s/../0x& /g"`)
local count1=${#res[@]}
if [ $count1 -lt ${#one[@]} ]
then
count1=${#one[@]}
fi
for (( i = 0; i < $count1; i++ ))
do
res[$i]=$((${one[$i]:-0} ^ ${res[$i]:-0}))
done
shift 1
done
printf "%02x" "${res[@]}"
}
echo $(xor $file1 $file2)
结果:
ubuntu@ip-10-0-1-137:~$ ./xorfiles ./1.txt ./2.txt
02a0feea81a19b33