2015-11-10 121 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