使用sed和regex隔离数据

时间:2019-09-18 17:02:47

标签: regex logging sed filter

我正在学习sed和regex以及分组以及如何从中隔离文件中的数据的方法。

好吧,我在其中写了一个sed命令,将auth.log中的所有IP都给了我,并将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

但是我每次在logips.log中都有整个auth.log。经过两个小时的思考和寻求,我在这里问。

我希望有人可以朝正确的方向推动我解决这个问题。

快乐的问候

1 个答案:

答案 0 :(得分:0)

要从auth.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