The sed below will output the input exactly. What I’d like to do is replace all occurrences of _ with – in the first matching group (\1), but not in the second. Is this possible?
echo 'abc_foo_bar=one_two_three' | sed 's/\([^=]*\)\(=.*\)/\1\2/'
abc_foo_bar=one_two_three
So, the output I’m hoping for is:
abc-foo-bar=one_two_three
I’d prefer not to resort to awk since I’m doing a string of other sed commands too, but I’ll resort to that if I have to.
Edit: Minor fix to RE
You can do this in sed using the hold space: