如何将md5sum输出的jar文件MD5值通过sed替换到目标文件?
当然可行!你的思路完全没问题,只需要把两个命令结合起来,用命令替换的方式就能轻松实现「计算File1的MD5值并写入File2」的目标。
直接一步到位的命令写法
你可以把获取MD5的命令用$()包裹,直接嵌入到sed命令的替换值里,记得要用双引号(单引号会让shell无法解析里面的命令替换):
sed -i "s/\${md5}/$(md5sum target/file1.jar | awk '{print $1}')/g" File2.json
更易调试的分步写法
如果你想更清晰地排查问题,也可以先把MD5值存进一个变量里,再执行替换:
# 先获取File1的MD5值并保存到变量 MD5_VALUE=$(md5sum target/file1.jar | awk '{print $1}') # 验证一下MD5值是否正确(可选但推荐) echo "File1的MD5值是:$MD5_VALUE" # 替换File2中的${md5}标记 sed -i "s/\${md5}/$MD5_VALUE/g" File2.json
小提醒
注意sed -i参数在不同系统里的差异:
- Linux系统直接用
sed -i即可 - macOS系统需要写成
sed -i '' "s/..."(多一个空字符串参数)
这样操作后,File2里所有的${md5}文本都会被替换成File1.jar的实际MD5值啦。
内容的提问来源于stack exchange,提问作者GSUgambit
相关产品推荐
相关产品推荐

