actually I user double quotes in th ebash script which requires me to pu \$1 to avoid $1 to be replaced by the shell
Ah yes, you are quite right. I have to agree with brother jcb that using a one-liner for this, especially with double quotes, is just asking for trouble and will be a maintenance nightmare. Just put it all in a script and then you won't have to worry about escaping everything. Eventually, when you become more familiar with Perl and what it can do you may see the benefit in replacing all of the bash parts with Perl.
There's a place for one-liners but this doesn't look like that place to me.