I’m trying to update a file by adding text to a new line after a matching line.
Following the documentation here I should be able to do this:
$ seq 3 | sed '2a hello'
1
2
hello
3
However, on Mac OSX, this doesn’t work. Firstly, because '2a hello' doesn’t seem to be interpreted as a valid sed command. Converting this to "s/2/a hello/" resolves the sed error, but simply replaces 2 with a hello:
$ seq 3 | sed "s/2/a hello/"
1
a hello
3
Is there some other way to use the append command with Sed on Mac?
>Solution :
On OSX you should use multiline sed for this:
seq 3 | sed '2a\
hello
'
Output:
1
2
hello
3
PS: This command will work for gnu sed as well.