一言で言えば、私はpingのための別の出力を作成しようとしています。それは私がやろうとしていることのためにもっとうまくいきます。そのために、私はpingの出力をsedにパイプ処理し、ミリ秒を除くすべてを削除します。最後の部分はPythonで書かれていて、それは出力を作成します。 これがコードです:
ping google.com | sed '/^[^=]*$/d;s/^[^=]*=[^=]*=[^=]*=//;s/ ms//' | python3 -c 'while True:
l = [float(input()) for _ in range(10)]
m = sum(l) / len(l)
n = sum(abs(i - m) for i in l) / len(l)
print("{}\t{}".format(m, n))'
フィッシュアンドバッシュで実行しようとしましたが、うまくいきません(=>出力が得られません)。しかし、個々の部品は機能します ping google.com | sed '/^[^=]*$/d;s/^[^=]*=[^=]*=[^=]*=//;s/ ms//'
期待される出力が得られます。私がcatを使ってファイルをそれにパイプすると、Pythonスクリプトは期待される出力を生成します。
@ John1024出力がありません。質問を更新します。
—
CodenameLambda
cmd1 | cmd2 > f
に続くcat f | cmd3
と同等であるべきですcmd1 | cmd2 | cmd3
。 (出力間の遅延があります)しかし、この場合はそうではありません、何らかの理由で私は知りません。