Hello All,
I'm trying to remove leading zeros in IP addresses using rex and mode=sed . the regular expression I'm trying to use for substitution is "\b0+\B" . However, it's not returning the required output.
Example : | rex field=<IP address field> mode=sed "\b0+\B"
I even tried with double back slash. But, no luck. Kindly assist to resolve this issue.
Regards,
Sid
Hi,
try this sed expression instead
...
| rex field=ip mode=sed "s/\b0+([0-9]+)/\1/g"
------------
If this was helpful, some karma would be appreciated.
That's not a valid rex sed statement, use this example
| makeresults
| eval ip=split("010.1.2.3,10.013.2.3",",")
| mvexpand ip
| rex field=ip mode=sed "s/\b0+\B//"
@bowesmana I'm still not getting the expected result. The regex pattern should remove all leading zeros in each octet. however, in this case, it is just removing the leading zero in whichever octet it finds at first place.
For example:
1) 010.1.2.3 -> it removes zero in 1st octet - > 10.1.2.3
2) 10.001.2.3 -> it removes zero in 2nd octet -> 10.1.2.3
3) 010.001.2.3 -> it removes zero in 1st octet only -> 10.001.2.3
4) 10.001.002.3 -> it removes zero in 2nd octet only -> 10.1.002.3
5) 10.1.2.003 -> it removes zero in 2nd octet only -> 10.1.2.3
Regards,
Sid
My bad, it was missing the 'g' (global) flag at the end
| makeresults
| eval ip=split("010.1.2.3,10.013.2.3,010.001.002.003",",")
| mvexpand ip
| rex field=ip mode=sed "s/\b0+\B//g"