Ich kann dein Problem nicht mit Bash reproduzieren.
$ echo aaa | sed -r 's/aaa/AAA \n#Passive mode/' AAA #Passive mode $ myprog=sed $ echo aaa | $myprog -r "s/aaa/AAA \n#Passive mode/" AAA #Passive mode
Ich vermute, es gibt mehr als das, was in der Frage steht.
Wahrscheinlich liegt es daran
1) Sie verfügen wahrscheinlich über einen komplizierten Satz von Skripts und / oder Aliasnamen und / oder Umgebungsvariablen, die dazu führen, dass Ihre Argumente mehrmals ausgewertet werden
2) Sie verwenden falsche Anführungszeichen. Wenn Sie "Params"
die Shell verwenden, wird die Konvertierung \\
in konvertiert \
.
Sie können mit einfachen Anführungszeichen glücklicher sein: 'params'
vergleichen Sie
$ echo "s/aaa/AAA \\\n#BBB/" s/aaa/AAA \\n#BBB/ $ echo 's/aaa/AAA \\\n#BBB/' s/aaa/AAA \\\n#BBB/