shell使用awk分割字符
遇到一个问题,在日志文件a中记录的ip是有[ip],需要处理ip然后显示ip地址.
[114.33.229.117|-] [220.165.158.173|-] [119.82.253.63|-] [119.82.253.206|-] [39.137.168.230|-] [117.86.76.98|-] [117.94.124.25|-] [125.74.14.50|-] [121.234.123.52|-] [117.67.131.103|-] [123.152.43.41|-] [119.82.253.182|-] [125.74.14.34|-] [118.89.19.33|-] [180.123.84.234|-] [125.74.14.45|-] [118.24.208.163|-]
这是需要分割字符串,只保留ip地址,并且需要去重.
#!/bin/sh cat a|awk 'gsub("^\\[","",$0)'|awk -F"[|-]" '{print $1}'|sort|uniq > b
处理之后的记录b:
114.33.229.117 117.67.131.103 117.86.76.98 117.94.124.25 118.24.208.163 118.89.19.33 119.82.253.182 119.82.253.206 119.82.253.63 121.234.123.52 123.152.43.41 125.74.14.34 125.74.14.45 125.74.14.50 180.123.84.234 220.165.158.173 39.137.168.230