0
我试图做到以下几点:重定向管道命令到一个文件在bash
ping some.server.com | grep -Po '(?<=\=)[0-9].\.[0-9]' >> file.dat
即我运行一个命令(平),输出的grep的一部分和grep的结果重定向到文件稍后再进行检查。当命令本身工作时(即'>>'之前的部分),没有任何东西被写入文件。
如何正确执行此操作?
我试图做到以下几点:重定向管道命令到一个文件在bash
ping some.server.com | grep -Po '(?<=\=)[0-9].\.[0-9]' >> file.dat
即我运行一个命令(平),输出的grep的一部分和grep的结果重定向到文件稍后再进行检查。当命令本身工作时(即'>>'之前的部分),没有任何东西被写入文件。
如何正确执行此操作?
使用--line-buffered
的说法。
ping some.server.com | grep --line-buffered -Po '(?<=\=)[0-9].\.[0-9]' >> file.dat
谢谢!有用。 – Echows
你等待足够长?在我看来,就像是一个缓冲问题(即,只有在标准输出中有4KB时才会写入该文件;过早用“^ C”中断将不会写入结果)。 – 4ae1e1