多くのサーバを構築、設定修正をする場合、sshコマンドから直接設定を行う方法を採用する事が多いだろう。
そんな時、リモート先で置換後の文字列をコマンドで設定するsedを行う必要が出た場合、どうすればよいのか。

例えば、「aaaaa」という文字列をリモート先のホスト名に変換する場合。
以下のようにコマンドを実行した場合、ローカル側のhostnameが出力されてしまう。

sed ユーザ名@リモートホスト sed s/aaaaa/`hostname`/g 対象ファイル

これは、「`hostname`」コマンドがローカル側で一度展開されてしまうからだ。
では、リモート側でコマンドを展開させるにはどうすればいいのだろうか?

以下のように、sedコマンドでの処理自体を「'(シングルクォーテーション)」で囲むと良いだろう。
なお、「"(ダブルクォーテーション)」だとまたローカルで展開されてしまうので注意。

sed ユーザ名@リモートホスト 'sed s/aaaaa/`hostname`/g' 対象ファイル