これを実行すると、ping example.com
各交換結果がコンソールに印刷されます。すべての情報を表示するのではなく、その結果のサブセットのみを表示するように各結果をフィルタリングしたいと思います。
したがって、代わりに:
PING example.com (93.184.216.34) 56(84) bytes of data.
64 bytes from 93.184.216.34 (93.184.216.34): icmp_seq=2 ttl=55 time=1201 ms
64 bytes from 93.184.216.34 (93.184.216.34): icmp_seq=3 ttl=55 time=783 ms
64 bytes from 93.184.216.34 (93.184.216.34): icmp_seq=4 ttl=55 time=417 ms
64 bytes from 93.184.216.34 (93.184.216.34): icmp_seq=5 ttl=55 time=159 ms
64 bytes from 93.184.216.34: icmp_seq=6 ttl=55 time=886 ms
端末に印刷したい内容は次のとおりです。
1201ms
783ms
417ms
159ms
886ms
具体的な答えを受け入れますがping
、動的手順を取り、返される各文字列を別の文字列として扱うことができる一般的な答えを好みます。それがより一般的だからです。私は特にシェルソリューションに興味があります。xargs
シェルソリューションがパイプリダイレクトを許可する特定のプログラムの制限を解決できるのと同じ方法です。
答え1
私の提案はを使用することですsed
。何かを別のものに変換したいだけでなく、動的な文字列が何を意味するのかわかりません。ほとんどのフィルタはこれを行います。
ping -c 3 1.1.1.1 | sed -En 's/.*=([0-9.]+) ([a-z]+)$/\1\2/p'
32.5ms
34.5ms
37.5ms
答え2
「動的プロセスを許可する」ということが何を意味するのかはわかりませんが、あなたのping
場合は出力を次にパイプすることができます。cut
ping example.com | cut -d= -f4
12.6 ms
11.3 ms
19.4 ms