linux的shell,怎么把一个文件的md5值赋值到一个数组里 类似 a[1]=md5sum a.txt ,但是这样没法赋值,求解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux的shell,怎么把一个文件的md5值赋值到一个数组里 类似 a[1]=md5sum a.txt ,但是这样没法赋值,求解相关的知识,希望对你有一定的参考价值。

注意,命令引起来的是tab键上面那个,而不是单引号
解释:
md5sum a.txt的结果例如是
3a5cacda937fbe71fcb72cfe4904dee8 a.txt
前面是MD5值,a.txt是你指定的文件名,我们要取前面那部分,有2个方法:
方法一,也就是xiehuahere的回答:
a[1]=`md5sum a.txt | cut -d' ' -f1`
其中cut的-d,是指定空格为分隔符,-f1是指定取分隔后的第一个字串,就是我们要的MD5值了。
方法二:
md5sum a.txt | awk -F ' ' 'print $1'
awk的-F ' ',是指定空格为分隔符,是指定空格为分隔符,是指定取分隔后的第一个字串,也是我们要的MD5值。
赋值除了使用“`”反引号,还可以这样,例:
a[1]=$(md5sum a.txt | cut -d' ' -f1)
a[1]=$(md5sum a.txt | awk -F ' ' 'print $1')
参考技术A a[1]=`md5sum a.txt | cut -d' ' -f1`追问

还是不行...只是纯属把md5sum a.txt | cut -d -f1存到数组里而已...
我把.sh代码放到补充里了。

追答

你要的不是这个效果?就是把md5sum a.txt | cut -d -f1的运算结果(就一个md5值)存到数组里,外面是有反引号的 ` ` (键盘上数字1左边的那个符号)
暂时没看到补充,被吞了?

追问

啊~原来是反引号,cut 后面的 -d -f1是什么意思啊?

追答

md5sum a.txt 出来的结果是 "md5值 a.txt" 这样的格式。

cut -d' ' -f1

-d 后面是一个空格放在单引号里 ' ',即以空格为分隔符将结果分割为两个字段。
-f1 取第一个字段,f表示field (字段)

本回答被提问者采纳

怎样查看文件的MD5值

我刚刚下载了一个windows xp sp3,我想看看文件的MD5值,确定是不是正版,还有我家的系统是Vista的,谢谢了!

要下载一个软件.

MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。
Message-Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一定长的大整数。请注意我使用了“字节串”而不是“字符串”这个词,是因为这种变换只与字节的值有关,与字符集或编码方式无关。
MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。
MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。
MD5还广泛用于加密和解密技术上,在很多操作系统中,用户的密码是以MD5值(或类似的其它算法)的方式保存的, 用户Login的时候,系统是把用户输入的密码计算成MD5值,然后再去和系统中保存的MD5值进行比较,而系统并不“知道”用户的密码是什么。
参考技术A 首先,你的确认你的电脑有计算md5值的软件,然后,右键文件“属性”有个“File Hashes”左键点击就开启计算文件的md5值! 参考技术B
MD5码生成器使用方法:
1、下载MD5校验码生成器。
2、运行MD5校验码生成器:MD5.exe

3、点击"浏览",选择已下载的文件,或者直接将下载好的文件拖到程序窗口。
4、检查生成的MD5校验码是否与下载页面上提供的相应软件的MD5校验码码相同。

以上是关于linux的shell,怎么把一个文件的md5值赋值到一个数组里 类似 a[1]=md5sum a.txt ,但是这样没法赋值,求解的主要内容,如果未能解决你的问题,请参考以下文章

linux shell md5sum 指令的诡异问题

unix 编一个shell,使用md5sum将路径中的文件分类

linux shell 命令获取字符串/文件的MD5值

求一个核对文件MD5值的shell脚本

shell脚本获取MD5值

nginx配置文件中怎么把hostname的值赋给其它变量