joh*_*doe 4 grep text-processing
我正在尝试使用 grep 命令排除列表中的某些 URL 条目(使用 IP 而不是域名),特别是删除https://以:80. 但是,带有https://和 的条目:8080也包括在内。
我的 grep 命令是:
egrep -v "https://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:80"
Run Code Online (Sandbox Code Playgroud)
我怎样才能强制 grep 只排除:80而不是: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
Run Code Online (Sandbox Code Playgroud)
只是在你的grep命令中更具体一点。如果 IP 是该行唯一的内容,因此:80将是最后 3 个字符,请使用:
grep -Ev "https://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:80$"
Run Code Online (Sandbox Code Playgroud)
或者,如果 之后可以有空格80,请使用:
grep -Ev "https://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:80\s*$"
Run Code Online (Sandbox Code Playgroud)
如果:80不是最后一件事,只需 grep 后有空格的情况:
grep -Ev "https://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:80 "
Run Code Online (Sandbox Code Playgroud)
如果最后一个字符不是空格,请根据您的输入进行调整。