我运行一些生成 ip 地址作为输出的命令。但是我正在开发一个工作流程,我需要将 ip 地址写入两次。下面是示例命令及其输出。
$ some command >> out.txt
$ cat out.txt
10.241.1.85
hdfs://10.241.1.236/
hdfs://10.241.1.237/
我想要的是复制输出,它应该看起来像这样。
10.241.1.85
hdfs://10.241.1.236/
hdfs://10.241.1.237/
10.241.1.85
hdfs://10.241.1.236/
hdfs://10.241.1.237/
有什么帮助吗?
@ott 在评论中给出的解决方案似乎很好:
var=$(some cmd); echo -e "$var\n$var".
这不是将命令分配给变量,而是将命令的输出分配给变量。
如果你不想要这个,你可以使用 tee
(也许这会产生一些排序问题)或者以不同的方式复制它:
some_command > out.txt.tmp
cat out.txt.tmp out.txt.tmp > out.txt
rm out.txt.tmp
通过这种方式,您可以在第一个条目的所有行之后首先获取副本的行。当你想直接将输出加倍时,可以使用
some_command | sed 'p' > out.txt
我是一名优秀的程序员,十分优秀!