Tar*_*eeb 4 linux bash redirect sed
我有一个打印单行的命令.我想将这一行添加/管道到一个文件,就在它的最后一行之上.
my_cmd | sed -i '$i' test
Run Code Online (Sandbox Code Playgroud)
我只是在最后一行上方的正确位置找到一个空行.我注意到当我添加任何字符串时'$i foo',"foo"会在正确的位置打印,但我希望打印管道线.
我怎样才能使用STDIN而不是"foo"?
Ken*_*ent 10
这应该做的伎俩:
sed -i "\$i $(cmd)" file
Run Code Online (Sandbox Code Playgroud)
测试:
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
Run Code Online (Sandbox Code Playgroud)
sed您可以使用命令替换来代替将输出传递给via管道:
$ cat f
First line
Second line
Third line
$ sed -i '$i'"$(echo 'Hello World')" f
$ cat f
First line
Second line
Hello World
Third line
Run Code Online (Sandbox Code Playgroud)
所以在你的情况下你可以使用:
sed -i '$i'"$(my_cmd)" test
Run Code Online (Sandbox Code Playgroud)