我的程序会生成一些数据。它输出标准错误的所有内容。
现在我想将输出重定向到新启动的文本编辑器,进入启动时显示的主要未命名编辑窗口。我尝试使用vim和gedit但没有成功。
myprogram | gedit
myprogram | gvim
任何人都知道X11文本编辑器会支持这个吗?
答案 0 :(得分:19)
如果您想将节目stderr
重定向到gvim
,可以执行以下操作:
myprogram 2>&1 | gvim -
如果您想将stdout
重定向到编辑器,您可以执行以下操作:
myprogram| gvim -
答案 1 :(得分:8)
我在Ubuntu 12.04中试过这个,它可以按照需要运行:
sudo lshw | gedit &
在Ubuntu 14.04上
sudo lshw | gedit - &
Dimitry K 于 2016年1月22日19:00 添加
我认为你仍然需要冲刺:
gedit sudo lshw | gedit - &
(试过ubuntu 14.04,只有破折号才有效) -
答案 2 :(得分:5)
要使用任何编辑器在一行中执行此操作,请创建一个临时文件,使用gedit打开它,然后在gedit打开它时将其删除:
echo hello > temp ; gedit temp ; sleep 1 && rm temp &
以下适用于vim之类的编辑器,但是gedit,geany或emacs似乎无法打开由<()
创建的标准输入或临时文件 vi <( echo hello )
echo hello | vi -
答案 3 :(得分:2)
我不知道任何支持此功能的编辑器,但重定向到临时文件可能更容易。
F=$(mktemp)
myprogram >$F
gedit $F
rm $F
答案 4 :(得分:1)
history | kate -i
我最喜欢的编辑: - )
如前所述,当一个程序不支持这样的管道时,最好的方法是在目录/ tmp /中使用临时文件,该文件通常在下次启动时被删除。
history > /tmp/bflmpsvz;mcedit /tmp/bflmpsvz