![将 md5sum 输出传送到特定文件行](https://linux22.com/image/132207/%E5%B0%86%20md5sum%20%E8%BE%93%E5%87%BA%E4%BC%A0%E9%80%81%E5%88%B0%E7%89%B9%E5%AE%9A%E6%96%87%E4%BB%B6%E8%A1%8C.png)
我找到了一些“几乎很好”的例子,但它们都没有发挥应有的作用。
我有一个文件a.txt和一个文件检查我.txt。我想执行 md5sum checkme.txt 命令并将其写为10号线的a.txt文件。
我尝试使用sed命令,但是没有用。有人可以帮我吗?
答案1
sed
解决方案:
sed '10 s/.*/'"$(md5sum checkme.txt | cut -d' ' -f1)"'/' a.txt
10 s/.*/<md5sum result>/
- 替换第10行的内容
答案2
解决方案ed
:
printf '10d\n-1r !md5sum checkme.txt\n' | ed -s a.txt
剧本ed
:
10d
-1r !md5sum checkme.txt
这会删除 的第 10 行,然后在其位置a.txt
插入 的输出。md5sum checkme.txt
这实际上并没有多大作用,因为结果不显示也不保存。
将结果写入终端:
printf '10d\n-1r !md5sum checkme.txt\n,p\n' | ed -s a.txt
要将结果写回a.txt
:
printf '10d\n-1r !md5sum checkme.txt\nw\n' | ed -s a.txt
如果a.txt
少于 10 行,则不会对文件进行任何修改。