特定の列の数字で始まる行のみを印刷

特定の列の数字で始まる行のみを印刷

ネットワーク上のすべてのホストのホスト名として、2番目の列を持つファイルがあります。

Host example.com (x.x.x.x) is up (0.0041s latency).

など。ただし、2 番目の列の多くの行は、ホスト名ではなくホスト名の IP で始まります。たとえば、次のようになります。

Host a.b.c.d is up (0.022s latency).

それでは、2番目の列でIPで始まるすべての行をどのように取得できますか?

答え1

そしてawk

awk '$2~/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/' file

$2正規表現と比較して2番目のフィールドを確認します。[0-9]数字と一致し、+1つ以上の数字と一致し、\.単一点と一致します。

関連情報