如何在编辑器中管道程序输出?

Did*_*set 13 linux editor pipe

我有我的程序生成一些数据.它输出标准错误的一切.

现在,我想将输出重定向到新启动的文本编辑器,进入启动时显示的主要未命名编辑窗口.我尝试使用vim和gedit但没有成功.

myprogram | gedit
myprogram | gvim
Run Code Online (Sandbox Code Playgroud)

有人知道X11文本编辑器会支持这个吗?

cod*_*ict 19

如果您想将stderr程序重定向到以下内容,gvim您可以执行以下操作:

myprogram 2>&1 | gvim -
Run Code Online (Sandbox Code Playgroud)

如果您想将其重定向stdout到编辑器,您可以执行以下操作:

myprogram| gvim -
Run Code Online (Sandbox Code Playgroud)

  • 是的,“-”在许多程序中代表 STDIN/STDOUT 而不是文件。 (2认同)

Rob*_*J1M 9

我在Ubuntu 12.04中试过这个,它按照需要工作:

sudo lshw | gedit &
Run Code Online (Sandbox Code Playgroud)

在Ubuntu 14.04上

sudo lshw | gedit - &
Run Code Online (Sandbox Code Playgroud)

Dimitry K20161月22日下午19:00加入

我想你还需要冲刺:

gedit sudo lshw | gedit - & 
Run Code Online (Sandbox Code Playgroud)

(试过ubuntu 14.04,只有破折号才有效) -

  • 我认为你仍然需要在gedit`sudo lshw |之后冲刺 gedit - &`(试过ubuntu 14.04,只有破折号才有效) (2认同)

Bre*_*nny 5

要使用任何编辑器在一行中执行此操作,请创建一个临时文件,使用gedit打开它,然后在gedit打开它时将其删除:

echo hello > temp ; gedit temp ; sleep 1 && rm temp &

以下适用于vim之类的编辑器,但是gedit,geany或emacs似乎无法打开由<()创建的标准输入或临时文件

vi <( echo hello )

echo hello | vi -