我找到了一些“几乎很好”的例子,但它们都没有发挥应有的作用。
我有一个文件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 行,则不会对文件进行任何修改。