私がやろうとしていることから始めましょう。
特定の行を見つけてその下の行を変更するsedステートメントがあります。これのために、私はまずその下の行を削除し、私が望む行を追加します。置換えされていない置換パターンを与える関数を使ってsedを実行する
sed -e '/'"$rootline"'/ {N;s/\n.*//;}' -e '/'"$rootline"'/ a\
'"$1 $linetoadd" <tmpmain >tmpsec
ここで、最初の式は$ rootlineに式を含む行を見つけて、次の行を削除します。そして式2は$ rootlineの行の後に追加したい行を追加します。
以前は別の.shファイルでこれを持っていましたが、sudoでファイルを呼び出すと(ファイル内の他の重要な操作でsudoを使用していました)、完全に機能しました。
今私はそれを関数に入れて、同じ.shファイルを通して呼び出そうとしています。 sudoでこの関数を呼び出すには、私はこれをanswerを使用しています。すべてが機能のsudoの部分に関して正常に動作しているようだが、それは上記の指定されたSEDの動作に来るとき、私は次の
sed: 1: "/root ALL=/ {N;s/
.*//;}
": unterminated substitute pattern #$rootline='root ALL='
私はこのエラーを取得していますなぜ上の任意の手掛かりを得ますか?
注:私は、Mac OS X