在文件的最后一行之前用管道输送一个字符串

在文件的最后一行之前用管道输送一个字符串

本文介绍了sed - 在文件的最后一行之前用管道输送一个字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个打印单行的命令.我想将此行添加/管道到文件中,就在其最后一行的上方.

I have a command that prints a single line.I want to add/pipe this line to a file, just above its last line.

my_cmd | sed -i '$i' test

我只是在最后一行上方的正确位置找到了一个空行.我注意到当我将任何字符串添加为 '$i foo' 时,foo"会打印在正确的位置,但我希望打印管道线.

I just find an empty line in the correct place, above the last line.I notice that when I add any string as '$i foo', the "foo" gets printed in the correct place, but I want the piped line to be printed.

如何使用 STDIN 而不是foo"?

How can I use STDIN instead of "foo"?

推荐答案

这应该可以解决问题:

 sed -i "$i $(cmd)" file

测试:

kent$  cat f
1
2
3
4
5

kent$  sed -i "$i $(date)" f

kent$  cat f
1
2
3
4
Tue Sep 30 14:10:02 CEST 2014
5

这篇关于sed - 在文件的最后一行之前用管道输送一个字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-24 18:39