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