在一堆日志中要拿到ip的值,日志格式是login_ip=127.0.0.1,这样的,使用awk命令:

awk -F “login_ip=” ‘{print $2}’ auany_login.log |awk -F “,” ‘{print $1}’ | uniq > loginip.txt

  1. 先使用-F 'login_ip='对字符串进行分割,得到127.0.0.1,及其后面的内容,
  2. 再使用一次分隔符-F ','分割ip和其后的内容,
  3. 再使用uniq进行去重,
  4. 最后保存进文件loginip.txt

这样就完成了ip地址的捞取。

然后发现因为参数类型的原因,将ip地址转换成了long,两边转换的过程还不一致,导致ip地址打印反了,所以需要将ip地址在反序输出。继续使用awk命令

awk -F ‘.’ ‘{print $4".“$3”.“$2”."$1}’ loginip.txt > revertip.txt

  1. 使用-F ‘.’ 将ip分割成四段
  2. 使用""将awk分隔好的字段进行拼接,拼接的时候倒序拼接就得到了反转的ip地址
  3. 再将结果保存进文件。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐