Chinaunix
标题:
急,这个md5加密的脚本如何写
[打印本页]
作者:
wzl189189
时间:
2017-01-11 14:09
标题:
急,这个md5加密的脚本如何写
有多列数据的文本,比如 一个文本 a.txt
日期 卡号 姓名
2016 123 张三
2016 234 李武
2019 222 老李
对第二列用md5加密 后变成另外一个文本 b.txt,内容如下:
日期 卡号 姓名
2016 加密后的md5值 张三
2016 加密后的md5值 李武
2019 加密后的md5值 老李
求大神, 这个脚本怎么写啊
作者:
moperyblue
时间:
2017-01-11 14:25
本帖最后由 moperyblue 于 2017-01-11 18:24 编辑
awk 'NR>1{cmd="echo -n "$2"|md5sum|cut -d\x22 \x22 -f1";cmd|getline $2;close(cmd)}1' a.txt
复制代码
作者:
reyleon
时间:
2017-01-11 14:38
awk 'NR>1{cmd=sprintf("printf %s|md5sum",$2);cmd|getline v;split(v,a);$2=a[1];close(cmd)}1' file
复制代码
作者:
sunzhiguolu
时间:
2017-01-11 15:21
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
binmode (STDOUT, ':encoding(utf8)');
while (<DATA>){
my @aT = split;
my ($md5) = @{[split ' ', `echo $aT[1] | md5sum -t`]};
print join ("\t", $aT[0], $md5, $aT[-1]), "\n";
}
__DATA__
2016 123 张三
2016 234 李武
2019 222 老李
复制代码
作者:
wzl189189
时间:
2017-01-11 17:27
回复
2#
moperyblue
你和
reyleon
你们2个加密结果咋不一样啊,如果是 md5加密,应该一样的结果啊
作者:
wzl189189
时间:
2017-01-11 17:27
回复
3#
reyleon
你和 楼上
moperyblue
两个人算出来的md5的值不一样啊,为啥啊?
作者:
moperyblue
时间:
2017-01-11 17:36
回复
5#
wzl189189
echo 123|md5sum
ba1f2511fc30423bdbb183fe33f3dd0f -
复制代码
作者:
wzl189189
时间:
2017-01-11 17:45
回复
7#
moperyblue
奇怪了
,我用java 的md5加密是: 202CB962AC59075B964B07152D234B70 咋和你的不一样啊?
作者:
cao627
时间:
2017-01-11 17:50
echo -n "123" 和 echo "123" 的区别
既然是行上的第二字段,是不包含换行符号的,所以要用 echo -n
作者:
wzl189189
时间:
2017-01-11 18:02
回复
7#
moperyblue
谢谢了,如果a.txt 的文本分隔符是 tab键,或别的分隔符,我试了一下 awk -F'\t', 用你这个脚本 就出错了,如果是分隔符,怎么改啊?
作者:
wzl189189
时间:
2017-01-11 18:04
回复
7#
moperyblue
如果a.txt 的分隔符是tab键,我用 awk -F'\t' 你这个脚本就错了,如果一定要填写分隔符,你这个咋优化下啊? 菜鸟请教下
作者:
wzl189189
时间:
2017-01-11 18:04
回复
7#
moperyblue
如果a.txt 的分隔符是tab键,我用 awk -F'\t' 你这个脚本就错了,如果一定要填写分隔符,你这个咋优化下啊? 菜鸟请教下
作者:
wzl189189
时间:
2017-01-11 18:05
回复
2#
moperyblue
如果a.txt 的分隔符是tab键,我用 awk -F'\t' 你这个脚本就错了,如果一定要填写分隔符,你这个咋优化下啊? 菜鸟请教下
作者:
wzl189189
时间:
2017-01-11 18:05
回复
2#
moperyblue
如果a.txt 的分隔符是tab键,如果一定要填写分隔符,你这个咋优化下啊? 菜鸟请教下
作者:
moperyblue
时间:
2017-01-11 18:30
回复
14#
wzl189189
分隔符是tab也没没问题.先确认a.txt里的数据是不是都以tab分隔
head a.txt|cat -A
awk -F'\t' 'NR>1{cmd="echo -n "$2"|md5sum|cut -d\x22 \x22 -f1";cmd|getline $2;close(cmd)}1' a.txt
复制代码
作者:
wzl189189
时间:
2017-01-11 19:15
回复
15#
moperyblue
不好意思
,这个系统有问题,回复你的时候,如果在awk后加上-f,就无法提交,老是报错,按你这样还是错的,结果是第四列全是: d41d8cd98f00b204e9800998ecf8427e
作者:
moperyblue
时间:
2017-01-11 19:29
本帖最后由 moperyblue 于 2017-01-11 19:30 编辑
回复
16#
wzl189189
你提供的数据只有三列?
作者:
moperyblue
时间:
2017-01-11 19:33
more a.txt
日期 卡号 姓名
2016 123 张三
2016 234 李武
2019 222 老李f
2019 222 老李g
复制代码
cat -A a.txt
M-fM-^WM-%M-fM-^\M-^_^IM-eM-^MM-!M-eM-^OM-7^IM-eM-'M-^SM-eM-^PM-^M$
2016^I123^IM-eM-<M- M-dM-8M-^I$
2016^I234^IM-fM-^]M-^NM-fM--M-&$
2019^I222^IM-hM-^@M-^AM-fM-^]M-^Nf$
2019^I222^IM-hM-^@M-^AM-fM-^]M-^Ng$
复制代码
awk -F'\t' 'NR>1{cmd="echo -n "$2"|md5sum|cut -d\x22 \x22 -f1";cmd|getline $2;close(cmd)}1' a.txt
日期 卡号 姓名
2016 202cb962ac59075b964b07152d234b70 张三
2016 289dff07669d7a23de0ef88d2f7129e7 李武
2019 bcbe3365e6ac95ea2c0343a2395834dd 老李f
2019 bcbe3365e6ac95ea2c0343a2395834dd 老李g
复制代码
作者:
sditmaner
时间:
2017-01-12 15:24
回复 5# wzl189189
作者:
wzl189189
时间:
2017-01-12 18:13
回复
18#
moperyblue
感谢,试了没有问题了,膜拜中!!!!
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2