特定の文字列を除外する grep には同様の文字列も含まれます。

特定の文字列を除外する grep には同様の文字列も含まれます。

grepコマンドを使用して、リストから特定のURLエントリ(ドメイン名ではなくIPを使用)を除外したいと思います。特にhttps://:80https://:8080

私のgrepコマンドは次のとおりです

egrep -v "https://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:80"

:80除外せずにgrepを強制的に除外する方法:8080

入力ファイルの内容の例は次のとおりです。

http://10.10.46.1:80
http://10.10.48.67:8080
http://10.10.48.67:443
https://10.10.46.1:80
https://10.10.48.67:8080
https://10.10.48.67:443

答え1

より具体的にコマンドを発行してくださいgrep。 IPが行の唯一のエントリである場合は、:80最後の3文字になります。以下を使用してください。

grep -Ev "https://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:80$"

または、後ろにスペースがある場合は、次のようにします80

grep -Ev "https://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:80\s*$"

行の最後の項目ではない場合は、:80その後にスペースがある場合を見つけてください。

grep -Ev "https://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:80 "

最後の文字が空白でない場合は、入力内容に合わせて調整してください。

答え2

データ内の正規表現を活用して正規表現を圧縮できます。

egrep -xv 'https?://[0-9]{1,3}([.][0-9]{1,3}){3}:80'

関連情報