awk を使用して、指定された範囲内の IP アドレスを照合します。

awk を使用して、指定された範囲内の IP アドレスを照合します。

改行で区切られたIPアドレスのリストから172の内部アドレス(172.16.x - 172.31.xなど)のみを一致させようとします。私はこれを試しましたが、うまくいきません。

awk '$1 ~ /^172.[1-3][6-9]|[0-1]/'

私は何が間違っていましたか?

答え1

パターンは^172.[1-3][6-9]|[0-1]次のように一致します。

172x39
40

後者は最初のフィールドで 0 または 1 と一致するためです。

文字通りの意味に変更するには、.グループ化\.を導入する必要があり、より良いパターンが必要です。

 ^172\.(1[6-9]|2[0-9]|3[0-1])\.

関連情報