2015-11-10 80 views
0

我试图做到以下几点:重定向管道命令到一个文件在bash

ping some.server.com | grep -Po '(?<=\=)[0-9].\.[0-9]' >> file.dat 

即我运行一个命令(平),输出的grep的一部分和grep的结果重定向到文件稍后再进行检查。当命令本身工作时(即'>>'之前的部分),没有任何东西被写入文件。

如何正确执行此操作?

+0

你等待足够长?在我看来,就像是一个缓冲问题(即,只有在标准输出中有4KB时才会写入该文件;过早用“^ C”中断将不会写入结果)。 – 4ae1e1

回答

1

使用--line-buffered的说法。

ping some.server.com | grep --line-buffered -Po '(?<=\=)[0-9].\.[0-9]' >> file.dat 
+0

谢谢!有用。 – Echows