forçar o redirecionamento de saída do programa unix

1

Sou novo no shell-scripting e acho que isso deve ser algo muito fácil. De qualquer forma eu não sei como forçar redirecionar a saída de um programa para a entrada de outro programa. Eu sei sobre o tubo, onde você pode fazer

program1 | program2

Mas no meu caso, acho que a saída do program1 já foi redirecionada para algum outro lugar (este é um script longo que alguém escreveu). Quando eu tentei em um prompt de comando separado, o resultado é o esperado, mas quando eu colocá-lo dentro do script program2 fica chateado com a falta de parâmetros. Posso de alguma forma forçar isso?

    
por phunehehe 04.02.2010 / 10:51

1 resposta

1

Eu tenho medo de que não haja uma resposta fácil para isso. Primeiro de tudo você tem que encontrar onde program1 está redirecionando sua saída para. Para dar algumas dicas sobre o que procurar, dê uma olhada em this .

quando descobrir, deixe o program1 imprimir na stdout. Desta forma, a saída do programa1 será canalizada para a entrada do programa2.

como você diz "fica chateado com a falta de parâmetros" também pode ser que o programa2 não é capaz de ler todas as informações do stdin. quando você usa a saída do programa1 como parâmetros para o programa2, tente xargs :

program1 | xargs program2
    
por 04.02.2010 / 11:15