问题 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"? 回答1: 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$