![如何将命令输出保存到文本文件的特定行](https://linux22.com/image/938959/%E5%A6%82%E4%BD%95%E5%B0%86%E5%91%BD%E4%BB%A4%E8%BE%93%E5%87%BA%E4%BF%9D%E5%AD%98%E5%88%B0%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E7%9A%84%E7%89%B9%E5%AE%9A%E8%A1%8C.png)
我想知道如何将命令输出保存到文本文件的特定行。
我在网上搜索了大约一个小时关于这个问题,但没有找到任何合适的答案。
例如:
我想将某些ls
命令的输出保存到第 7 行example.txt
。(插入新行)
我该怎么做?
提前致谢。
答案1
您可以使用 sed 的r
命令读取命令输出并将其插入到给定地址之后。具体来说,GNU sed 提供了特殊的文件名/dev/stdin
来从标准输入读取数据。
例如,
$ cat example.txt
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
然后
$ ls -l example.txt | sed -i '7r/dev/stdin' example.txt
结果是
$ cat example.txt
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
-rw-r--r-- 1 steeldriver steeldriver 71 Jun 28 15:52 example.txt
Line 8
Line 9
Line 10
如果你想插入命令输出前第7行,然后读入并插入到第6行之后。