4 on my linux machine (I checked w/ sed --version).
Currently, I have a myfile.txt with the following content:
---
title: hello
author: Jan King
foo: bar
author: Jan King
---
I know in GNU sed, I can append after the first occurrence of a match if I prepend the sed command with 0,.
So, if I want to insert goodbye after the first occurrence of ---, I can do that:
sed -i '0,/---/a goodbye' myfile.txt
expected/correct result:
---
goodbye
title: hello
author: Jan King
foo: bar
author: Jan King
---
But now, I am trying to insert goodbye after the first occurrence of author: Jan King.
However, the following sed command doesn't work and appends goodbye 3 times, which is not what I want:
sed -i '0,/^author:.*/a goodbye' myfile.txt
incorrect/unexpected result:
---
goodbye
title: hello
goodbye
author: Jan King
goodbye
foo: bar
author: Jan King
---
If I remove 0, from the above sed command, then goodbye is appended twice after author: Jan King:
sed -i '/^author:.*/a goodbye' myfile.txt
expected result:
---
title: hello
author: Jan King
goodbye
foo: bar
author: Jan King
goodbye
---
So I'm having trouble appending goodbye on first match only of author: Jan King (even though it is fine on first match of ---).
Can someone please explain why my sed command isn't working? And how to fix it?