将 md5sum 输出传送到特定文件行

将 md5sum 输出传送到特定文件行


我找到了一些“几乎很好”的例子,但它们都没有发挥应有的作用。

我有一个文件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 行,则不会对文件进行任何修改。

相关内容