LINUX.ORG.RU

Перенаправить stderr как stdin другой проге


0

0

Приветствую всех.

После редактирования файла через sudoedit, если изменения не сохнанять, то пишет: sudoedit: <файл> unchanged

Это сообщение выводится в stderr. "|" - некатит, так как перенаправляется также stdout, следовательно интерфейс редактора отжирает "|"

Решение типа: <stderr> 2>~/myfile.txt && grep -v 123 ~/myfile.txt;rm -f ~/myfile.txt - не предлогать.

Вообще-то перенаправить на вход можно только конвеером, а он только stdout переправляет...

Есть хоть какое-то ришение без перенаправления в файл ?

★★★★★
Ответ на: комментарий от Onanim

>prog1 2>&1 | prog2

Неработает, так как "|" толкает в stdout проги vim в grep, что существенно тормозит его работу.

iron ★★★★★
() автор топика
Ответ на: комментарий от dilmah

>prog1 2>&1 > /dev/null | prog2

Неработает, пишет: Vim: Warning: Output is not to a terminal, и продолжает так и висеть, при этом ничего невыводит на экран.

iron ★★★★★
() автор топика
Ответ на: комментарий от dilmah

>prog1 2>&1 > /dev/null

Дык эта конструкция вообще перенаправляет stderr в stdout. А stdout перенаправляет в /dev/null :)

iron ★★★★★
() автор топика
Ответ на: комментарий от iron

2 iron :

> > prog1 2>&1 | prog2

> Неработает, так как "|" толкает в stdout проги vim в grep, что
> существенно тормозит его работу.

Ну не то чтобы эта конструкция не работала, но если prog1 это vim
то тада да... сорри :-(

Вот таким образом должно работать с vim:

vim 2>&1 1>/dev/tty | egrep 'something'

HTH

Onanim
()
Ответ на: комментарий от Onanim

Работает !

Оригинальное ришение ! Спасиба !

iron ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.