0〜200の範囲の最後の3桁を含む10.20.30。*形式のすべてのIPアドレスを削除し、残りのすべてのIPを新しいファイルに移動したいと思います。
除外するIPのリストをwhiteIP.txtファイルに配置し、その内容は次のとおりです。
^10.20.30.([0-1][0-9][0-9]|2[00])
私の元のファイルの内容は次のとおりです。
10.20.30.150,20
10.20.30.134,20
10.20.30.201,20
10.20.30.5,20
10.20.30.250,20
10.20.30.42,20
222.233.201.5,20
10.233.201.5,20
111.233.201.5,20
私はコマンドを試しています:
grep -vE -f whitetest.txt testIP.txt
それは私に間違った結果を与える。それは私に次の結果を与えるべきです:
10.20.30.201,20
10.20.30.250,20
222.233.201.5,20
10.233.201.5,20
111.233.201.5,20
どんなアドバイスでも大きな助けになります。
ベストアンサー1
いくつか:
.
特殊文字なのでエスケープする必要があります。
^10\.20\.30\.([0-1][0-9][0-9]|2[00])
2[00]
200ではなく20と一致:
^10\.20\.30\.([0-1][0-9][0-9]|200)
1桁の数字と2桁の数字を別々に処理する必要があります。
^10\.20\.30\.([0-1][0-9][0-9]|200|[0-9][^0-9]|[0-9][0-9][^0-9])
これは正しい結果を提供します。
$ grep -vE -f whitetest.txt testIP.txt
10.20.30.201 20
10.20.30.250 20
222.233.201.5 20
10.233.201.5 20
111.233.201.5 20