2013-05-28 36 views
0

我想运行一个程序,将某些输出写入文件。现在在这个文件中,我将grep某些字符串并将它们写入另一个文件。我不想序列化这个过程。相反,我想管这些命令。然而这个命令不起作用在线grep同时生成输出

./run_prog | grep READ > read_data.txt 
+0

你是什么意思的“这个命令不起作用”?如果''run_prog''是可执行的并且写入标准输出,则应该在''read_data.txt''中获得包含''READ''的所有行。 – mzedeler

回答

1

如前所述,您的程序可能会写入STDERR而不是STDOUT。为了确保你捕捉到了,请试试这个:

./run_prog 2>&1 | grep READ > read_data.txt 
+0

是的,它是stderr – mahmood

1

确保您./run_prog给你的输出到标准输出。以下示例显示它应该起作用。

$>echo "READ" | grep READ > read_data.txt 
$>cat read_data.txt 
READ 
$> 

既然你现在放心它应该只是运行./run_prog调试工作,然后添加| grep

+0

啊是的。我将输出重定向到stderr! – mahmood

+0

非常好。幸运,我可以帮忙。 – hol