Editing files with sed or something similar

{
"AFafa": "FAFA","AFafa": "FAFA"
"baseball":"soccer","wrestling":"dancing"
"rhinos":"crocodiles","roles":"foodchain"
}

I need to insert a new line before the closing brackets "}" so that the final output looks like this:

{
"AFafa": "FAFA","AFafa": "FAFA"
"baseball":"soccer","wrestling":"dancing"
"rhinos":"crocodiles","roles":"foodchain"
"contacts":"groupings","emails":"addresses"
}

i got this far:

sed 's~}~"contacts":"groupings","emails":"addresses"~g'

any ideas?

Longhand using _builtins_, OSX 10.7.5, default bash terminal...

#!/bin/bash
# bracket.sh
printf "\nCreate the first part...\n\n"
ifs_str="$IFS"
IFS="}"
echo '{
"AFafa": "FAFA","AFafa": "FAFA"
"baseball":"soccer","wrestling":"dancing"
"rhinos":"crocodiles","roles":"foodchain"
}' > /tmp/file1
text=`cat < /tmp/file1`
echo "$text"
printf "\nNow to build up and convert...\n\n"
# Woring part.
extra_line='"contacts":"groupings","emails":"addresses"'
text_array=($text)
end_text="\n}\n"
text="${text_array[0]}$extra_line$end_text"
printf "$text" > /tmp/file2
# End of working part.
cat < /tmp/file2
IFS="$ifs_str"
exit 0

Results:-

Last login: Sat May 24 15:59:05 on ttys000
AMIGA:barrywalker~> ./bracket.sh

Create the first part...

{
"AFafa": "FAFA","AFafa": "FAFA"
"baseball":"soccer","wrestling":"dancing"
"rhinos":"crocodiles","roles":"foodchain"
}

Now to build up and convert...

{
"AFafa": "FAFA","AFafa": "FAFA"
"baseball":"soccer","wrestling":"dancing"
"rhinos":"crocodiles","roles":"foodchain"
"contacts":"groupings","emails":"addresses"
}
AMIGA:barrywalker~> _

Or with awk:

line='"contacts":"groupings","emails":"addresses"'
awk -v line=$line '$0~/}/{print line}1' file

sed has an insert command, i . Use the closing bracket as an address for the insertion.

Regards,
Alister

The classic sed needs multi-line

sed '
/}/i\
"contacts":"groupings","emails":"addresses"
' file

The follow works on my mac:

sed  's/}/"contacts":"groupings","emails":"addresses"\'$'\n}/' file

Also try

$ cat file
{
"AFafa": "FAFA","AFafa": "FAFA"
"baseball":"soccer","wrestling":"dancing"
"rhinos":"crocodiles","roles":"foodchain"
}
$ awk 'gsub(/}/,new"\n&") + 1' new='"contacts":"groupings","emails":"addresses"' file
{
"AFafa": "FAFA","AFafa": "FAFA"
"baseball":"soccer","wrestling":"dancing"
"rhinos":"crocodiles","roles":"foodchain"
"contacts":"groupings","emails":"addresses"
}