SED with Special characters

Hello All

Seeking the right one SED command.

My attempt is:
From orginal.txt by SED to target.txt

sed -i "/('outbound-callerid/a\$ext->add($context, $exten, '', new ext_SipAddHeader('P-Preferred-Identity', '<sip:${CALLERID(nummer)}@carrier.com>'));" orginal.txt

What am make wrong?:wall:

Many Thanks
Marcel

Try:

sed -i "/('outbound-callerid/a\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \$ext->add(\$context, \$exten, '', new ext_SipAddHeader('P-Preferred-Identity', '<sip:\${CALLERID(nummer)}@carrier.com>'))\;" infile

or

sed -i "/('outbound-callerid/s/$/\n                        \$ext->add(\$context, \$exten, '', new ext_SipAddHeader('P-Preferred-Identity', '<sip:\${CALLERID(nummer)}@carrier.com>'))\;/" infile

Both works.

But only on the first:

'outbound-callerid

i need the Change . How do I do that?

Many Thanks for the super fast service
Marcel

You could try this:

sed -i "/outbound-callerid/r"<(echo "                        \$ext->add(\$context, \$exten, '', new ext_SipAddHeader('P-Preferred-Identity', '<sip:\${CALLERID(nummer)}@carrier.com>'))\;/") infile

If you are using ksh93/bash

or get the linenumber first:

sed -i "13s/$/\n                        \$ext->add(\$context, \$exten, '', new ext_SipAddHeader('P-Preferred-Identity', '<sip:\${CALLERID(nummer)}@carrier.com>'))\;/" infile

so, for example:

sed -i "$(grep -nm1 outbound-callerid infile | sed 's/:.*//')s/$/\n                        \$ext->add(\$context, \$exten, '', new ext_SipAddHeader('P-Preferred-Identity', '<sip:\${CALLERID(nummer)}@carrier.com>'))\;/" infile
1 Like

or..since you have a blank line, we could use the range upto which modification is needed.

sed -i '1,/^$/s/outbound-callerid.*/&\n           $ext->add($context, $exten, '', new ext_SipAddHeader('P-Preferred-Identity', '<sip:${CALLERID(nummer)}@carrier.com>'));/' inputfile 
1 Like

The First works perfect.
I use Debian 5.0 bash.

I am happy now. Thanks for your help.
Marcel