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 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.
How can I use STDIN instead of “foo”?
Advertisement
Answer
this should do the trick:
sed -i "$i $(cmd)" file
test:
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