逆袭的签字笔 · 双目测距 - Champrin - 博客园· 1 月前 · |
玩篮球的四季豆 · 潜江历史名人传 _ 潜江市人民政府· 6 月前 · |
爱笑的肉夹馍 · 断魂小丑2小女孩是谁 ...· 1 年前 · |
瘦瘦的蚂蚁 · 清华附中嘉兴实验学校公开招聘教育高层次人才和 ...· 1 年前 · |
狂野的充值卡 · 西班牙国宝级美女,打败寡姐,美过莫妮卡,和老 ...· 1 年前 · |
我有一个文件,其中一些行包含一个编码为text ->二进制-> octets的数字,我需要对其进行解码才能得到数字。该编码字符串所在的所有行都以STRVID开头:
例如,我有一句台词:
STRVID: SarI3gXp
如果我做这个回波"SarI3gXp“\ perl -lpe‘$_=unpack”B*“,我会得到二进制数
0101001101100001011100100100100100110011011001110101100001110000
现在,为了从二进制解码为octets,我这样做(将前面的命令分配给变量,然后将二进制转换为octets )。
variable=$(echo "SarI3gXp" | perl -lpe '$_=unpack"B*"') ; printf '%x\n' "$((2#$variable))"
结果是数字,而不是正确的顺序。
5361724933675870
要得到前一个数字的正确顺序,我必须得到每一对数字,首先,第二个数字,然后第一个数字,最后得到我想要的数字。就像这样:
variable=$(echo "SarI3gXp" | perl -lpe '$_=unpack"B*"') ; printf '%x\n' "$((2#$variable))" | gawk 'BEGIN {FS = ""} {print $2 $1 $4 $3 $6 $5 $8 $7 $10 $9 $12 $11 $14 $13 $16 $15}'
最后,我找到了我要找的号码:
3516279433768507
对于我的文件中以STRVID:开头的每一行,我都不知道如何自动做到这一点。最后,我需要的是整个文件,但是当一行以STRVID开头时:则需要解码的值。
当我发现这个:
STRVID: SarI3gXp
我会在我的档案里
STRVID: 3516279433768507
有人能帮忙吗?
发布于 2022-07-14 14:06:08
首先,转换所需的全部条件是
unpack "h*", "SarI3gXp"
使用
-p
的perl一行程序将为每一行执行所提供的程序,而
s///e
允许我们修改以代码作为替换表达式的字符串。
perl -pe's/^STRVID:\s*\K\S+/ unpack "h*", $& /e'
见 将要处理的文件指定为Perl一行 。
https://stackoverflow.com/questions/72976624
复制相似问题
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
逆袭的签字笔 · 双目测距 - Champrin - 博客园 1 月前 |
玩篮球的四季豆 · 潜江历史名人传 _ 潜江市人民政府 6 月前 |
爱笑的肉夹馍 · 断魂小丑2小女孩是谁 断魂小丑2小女孩介绍_游侠手游 1 年前 |