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