首页

文章

linux shell md5sum 指令的诡异问题

发布网友 发布时间:2022-04-19 10:33

我来回答

1个回答

热心网友 时间:2023-06-30 14:47

初看你的代码,貌似没什么问题,琢磨了半天才发现原来和相同文件的个数有关。
当你的相同文件数目大于等于3时,就会出这个问题。只有两个文件相同时,则不会出。
比如你的
text,
text1,
text2
是相同的,第一次进入时
比较和处理text,
text1
没有问题。
第二次进入时,此时要比较
text1

text2,相当于要执行
"md5sum
text1"
|
getline;
sum1=$1;
print
$0
"md5sum
text2"
|
getline;
sum2=$1;
print
$0
但是由于
"md5sum
text1"
|
getline
这条管道语句已经在上次比较
text

text1
时执行过了,awk在第二次执行的时候就不会再创建管道执行同样的md5sum命令让getline读取,而是尝试从之前打开的管道中让getline读取内容,显然,此时已经没有内容可读了,因此此时getline
会失败
(如果你用
if
语句判断这条命令的返回值,会发现返回值不等于1
(应该是0,表示
end
of
file)。所以这条语句并不会更新
$0
$1
这些变量,所以后面你
print
$0
实际上打印的是
ls
-lS
得到的输入。
解决方法很简单,在每次
"md5sum
"name
|
getline
之后,用close命令,比如
"md5sum
"name1
|
getline;
sum1=$1;
close("md5sum
"name1)
print
$0
"md5sum
"name2
|
getline;
sum2=$1;
close("md5sum
"name2)
print
$0
这样就在每次getline之后,都关闭管道,从而确保下次总能重新创建管道及执行md5sum命令。
土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? 恭城水柿柿树作用 创维洗衣机使用教程 创维全自动洗衣机怎么使用 自动开门器 狗羊属相婚姻相配吗 3岁的小孩不会说话怎么办 3岁孩子不会说话,应该挂什么科? 3岁小孩不会说话正常吗 鹿茸炖乌鸡怎么做? 新型冠状肺炎吃什么药可以预防 冰箱上电后一直响 oppor11拍照怎么时间水印 oppor11手机相机怎么设置拍摄时间 怎么订购外卖啊,我在老家,想给外地女朋友订 怎么给女朋友点外卖 怎样给女朋友点外卖 我怎么帮异地的女友点外卖? 我和女友是异地,在得知她加班到很晚,第二天想为她点个外卖,该点个什么比较好! 我想给我远方的女朋友点个外面怎么才能买? 怎样给相隔四十公里的女友点外卖? 怎么给异地恋的女朋友点外卖 OPPO R11 Plus拍照怎么显示日期 oppor11手机相机水印设置 oppor11手机相机水印要怎么设置? 怎么设置一下那个oppor11plus照相可以显示时间 武汉市绿寰科技发展有限公司怎么样? 为什么,新浪微博支付不了 2017款上市的OPPO R11如何在照片上显示时间的水印?如:2017-7-15 Mac屏幕声音如何录制 怎么录电脑声音 macbookpro录屏怎么录自带声音 苹果电脑录屏怎么录内部声音 Linux镜像中有md5sum.txt和MD5SUMS,感觉是在交叉校验md5,这些值是怎么得出的 linux怎么查看文件md5值 linux下怎么生成文件的md5 linux中使用md5sum文件 linux 下自带的MD5函数怎么用 如何在linux使用md5对其进行加密? 如何在Linux内核中调用MD5算法计算文件的MD5值 404 Not Found 怎样使用linux内核中的md5加密算法 linuxshell怎么计算设备文件的md5 Linux中什么是MD5校验玛 Linux列出当前目录下的文件和目录用什么命令 linux shell 怎么计算设备文件的md5 如何查询linux 的MD5值是多少? 详解Linux系统中md5sum命令的用法 linux checksum 和md5sum的区别 如何在Linux下校验MD5,我的linux下没有md5sum等软件 linux shell逐行 md5 微信视频怎么设自动录像功能吗 0PP0R11St手机拍照时间怎么设置?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com