[20230428]bash实现xor计算.txt --//昨天使用自己以前写的脚本做xor计算,仔细看了自己以前写的源代码,这样写主要问题调用bc次数太多,计算效率很低. --//http://blog.itpub.net/267265/viewspace-2134945/ => [20170308]bc做xor(异或)计算.txt $ cat xor.sh #! /bin/bash # just play , calc xor!! s='0' for i in $(cat $1| tr 'a-f' 'A-F') do #echo "obase=16;ibase=16; xor($s,$i)" echo $i [ $i != '0000' ] && s=$(echo "obase=16;ibase=16; xor($s,$i)" | bc -l ~/bc/logic.bc) done echo -e "\nxor result: $s \n" --//理论讲bash 应该支持xor,以前的学习不仔细,仔细看一些文档.发现bash本身就支持xor的计算,例子如下: $ echo $(( 0x5 ^ 0x9 )) 12 --//自己尝试修改看看. $ cat xor2.sh #! /bin/bash # just play , calc xor!! s='0' for i in $(cat $1| tr 'a-f' 'A-F') do #echo "obase=16;ibase=16; xor($s,$i)" echo $i #[ $i != '0000' ] && s=$(echo "obase=16;ibase=16; xor($s,$i)" | bc -l ~/bc/logic.bc) [ $i != '0000' ] && s=$((0x$s ^ 0x$i )) && s=$(printf '%04x\n' $s) done echo -e "\nxor result: $s \n" --//测试看看: 1.环境: SCOTT@book> @ ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production 2.测试: SCOTT@book> select rowid from dept where rownum=1; ROWID ------------------ AAAVRCAAEAAAACHAAA SCOTT@book> @ rowid AAAVRCAAEAAAACHAAA OBJECT FILE BLOCK ROW ROWID_DBA DBA TEXT ---------- ---------- ---------- ---------- -------------------- -------------------- ---------------------------------------- 87106 4 135 0 0x1000087 4,135 alter system dump datafile 4 block 135 ; SCOTT@book> @ bbvi 4 135 BVI_COMMAND ---------------------------------------------------------------------------------------------------- bvi -b 1105920 -s 8192 /mnt/ramdisk/book/users01.dbf xxd -c16 -g 2 -s 1105920 -l 8192 /mnt/ramdisk/book/users01.dbf dd if=/mnt/ramdisk/book/users01.dbf bs=8192 skip=135 count=1 of=4_135.dd conv=notrunc 2>/dev/null od -j 1105920 -N 8192 -t x1 -v /mnt/ramdisk/book/users01.dbf hexdump -s 1105920 -n 8192 -C -v /mnt/ramdisk/book/users01.dbf alter system dump datafile '/mnt/ramdisk/book/users01.dbf' block 135; alter session set events 'immediate trace name set_tsn_p1 level 5'; alter session set events 'immediate trace name buffer level 16777351'; 9 rows selected. $ time xxd -c16 -g 2 -s 1105920 -l 8192 /mnt/ramdisk/book/users01.dbf | cut -c10-48| xor.sh | grep result xor result: 0 real 0m18.801s user 0m9.147s sys 0m8.431s --//使用旧的xor.sh脚本计算需要18秒. $ time xxd -c16 -g 2 -s 1105920 -l 8192 /mnt/ramdisk/book/users01.dbf | cut -c10-48| xor2.sh | grep result xor result: 0000 real 0m3.853s user 0m0.539s sys 0m1.258s --//而新的xor2.sh脚本计算需要4秒完成,快了不少.
[20230428]bash实现xor计算.txt
来源:这里教程网
时间:2026-03-03 18:43:18
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 马达监控系统能实现哪些功能?
马达监控系统能实现哪些功能?
26-03-03 - 服务器中了勒索病毒,用友nc软件系统被loced1勒索病毒攻击后怎么办?
服务器中了勒索病毒,用友nc软件系统被loced1勒索病毒攻击后怎么办?
26-03-03 - 直播切片生意,何去何从?
直播切片生意,何去何从?
26-03-03 - 从业务连续性到数据安全合规,企业该如何应对?
从业务连续性到数据安全合规,企业该如何应对?
26-03-03 - 浅谈电能计量管理系统在煤矿上的应用
浅谈电能计量管理系统在煤矿上的应用
26-03-03 - Oracle数据库(DataGuard)迁移方案(上)
Oracle数据库(DataGuard)迁移方案(上)
26-03-03 - 明辰智航网络性能测试仪可以帮助企业做什么
明辰智航网络性能测试仪可以帮助企业做什么
26-03-03 - 高端风再起,小爱、小度、天猫精灵发新芽?
高端风再起,小爱、小度、天猫精灵发新芽?
26-03-03 - 明辰智航网络一点通网络性能测试仪可以做什么
明辰智航网络一点通网络性能测试仪可以做什么
26-03-03 - 无线网测试软件可以帮助企业做什么
无线网测试软件可以帮助企业做什么
26-03-03
