Hello world,
I'm trying to use rex to rename the part of the strings below where it says "g0" to "GRN". So the output would read 01-GRN1-0, 01-GRN2-0etc. I have been unable to get it to work and any guidance to point me in the right direction would be much appreciated.
The rex statement in question:
| rex field=ThisField mode=sed "s/g0/\GRN/g"
Example strings:
01-g01-0
01-g02-0
01-g03-0
You don't need the backslash - here is a runanywhere example showing it working
| makeresults
| fields - _time
| eval ThisField=split("01-g01-0
01-g02-0
01-g03-0","
")
| mvexpand ThisField
| rex field=ThisField mode=sed "s/g0/GRN/g"
Yeah I tried that first, but other related issues on the boards led me to try it with the backslash. It returns the same results.
The search works as shown which probably means there is something different in your environment which hasn't been made clear to us. Please can you provide more details and examples of where this substitution is not working as expected?
You don't need the backslash - here is a runanywhere example showing it working
| makeresults
| fields - _time
| eval ThisField=split("01-g01-0
01-g02-0
01-g03-0","
")
| mvexpand ThisField
| rex field=ThisField mode=sed "s/g0/GRN/g"
It turns out the cause of my issue was another rex statement down the line that hadn't been updated to match the renamed string. It used
(?<Foo>\D\d*)-0
which matched the string before the replacement, which the statement is now
(?<Foo>\D*\d)-0
Apologies for my confusion. I've marked your efforts as the solution as the backslash was indeed not needed.
Thank you and have some Karma for your efforts.
Hi
you should remove \ before G.
r. Ismo