sedを使用してテキストファイルに次の行を追加したいと思います。
gem 'forum2discourse'
私はそれを試しましたが、プロンプトがsed -i '$a gem \'forum2discourse\'' Gemfile
表示されるので、文字を>
誤ってエスケープしたようです。'
答え1
sed -i '$a gem '"'"'forum2discourse'"'" Gemfile
代替ソリューション
独自の方法で実行するには、bash$'string'
形式を使用してください。 $ 'string'形式の単語は特別に扱われます。ワードは、ANSI C規格で指定されているように置き換えられたバックスラッシュエスケープ文字を使用して文字列に展開されます。
sed -i $'$a gem \'forum2discourse\'' Gemfile
源泉:http://wiki.bash-hackers.org/syntax/quoting#ansi_c_like_strings
答え2
少なくともGNU sedの場合:
sed -i.bak '$a gem \x27forum2discourse\x27' file
答え3
sed -i -e '$a gem '"'"'forum2discourse'"'" yourfile