我想运行一个将一些输出写入文件的程序。现在在这个文件中,我将对某些字符串进行 grep 并将它们写入另一个文件。我不想序列化这个过程。相反,我想管道命令。但是这个命令不起作用
./run_prog | grep READ > read_data.txt
确保您./run_prog
将输出提供给 STDOUT。以下示例表明它应该可以工作。
$>echo "READ" | grep READ > read_data.txt
$>cat read_data.txt
READ
$>
由于您现在确信它应该通过运行./run_prog
然后添加来进行调试| grep
。
如前所述,听起来您的程序可能正在写入 STDERR 而不是 STDOUT。为了确保你也能捕捉到这一点,试试这个:
./run_prog 2>&1 | grep READ > read_data.txt