正则表达式:使用 awk 和 sed 按 IP 匹配网站

正则表达式:使用 awk 和 sed 按 IP 匹配网站

我有一个包含不同网站的多个 IP 地址的文件,但我只想打印与特定 IP 关联的网站并显示该网站。例如,

128.125.21.1,/www.extra.com/home.html,2323,oiehfoioi,wopwpwp
124.15.21.1,/www.yahoo.com/9998,wjeoiwjo,bbdjksbk

我所需要的只是与 128.125.21.1 关联的网站,并且我已经使用 awk 打印整个网址和 IP 得到结果,但我想删除 IP 如何结合 awk 和 sed 来完成此操作?

答案1

看起来您想要的可以表述为“从第一个逗号分隔字段为128.125.21.1”的任何行中打印第二个逗号分隔字段。如果是这样,您可以使用:

awk -F, '$1=="128.125.21.1"{print $2}' file

在你的例子中,打印:

$ awk -F, '$1=="128.125.21.1"{print $2}' file
/www.extra.com/home.htm

当然,这不是实际的 URL。要同时删除前导/,您可以使用:

$ awk -F, '$1=="128.125.21.1"{print $2}' file | sed 's#^/##'
www.extra.com/home.html

相关内容