使用 sed 和正则表达式来隔离数据



Hehey

我正在学习 sed 和正则表达式以及分组以及如何用它从文件中隔离数据。

好的,我在那里写了一个 sed 命令,给我身份验证中的所有 IP.log并将 ips 写入 logips.log 文件中,所以我需要对正则表达式进行分组并采用第二个 (ip( 组。

sed 's/(.*)([0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3})(.*)//2/g' /var/log/auth.log > logips.log

但是我每次都有整个身份验证.log在我的日志中.log。经过2个小时的思考和寻找,我在这里问。

我希望有人能把我推向正确的方向来解决这个问题。

快乐的问候

要从身份验证.log获取所有 IP,请尝试grep

grep -o -E "[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}" auth.log
  • -o输出仅匹配
  • -E扩展正则表达式
  • [0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}匹配 IP

最新更新