MAC OS X無効なコマンドuでsedエラー

MAC OS X無効なコマンドuでsedエラー

使用すると、MAC OS X でsed次のエラーが発生します。

sed -i '' '/user_pref("mail.identity.id1.reply_on_top", 1);/ a\
user_pref("mail.identity.id1.sig_file", "/Users/nicolas.hulot/Library/Mail/V2/MailData/Signatures/signature.html");
user_pref("mail.identity.id1.sig_file-rel", "[ProfD]../../../Mail/V2/MailData/Signatures/signature.html");
' ~/Library/Thunderbird/Profiles/*.default/prefs.js

2行目、3行目を別の文字列に置き換えれば'abcdefgh...'大丈夫ですが、特殊文字がたくさん入ったこの文字列はただ間違っていますね。

発生するエラーは次のとおりです。

sed: 3: "/user_pref("mail.identi ...": invalid command code u

答え1

pend for forはnewline問題を引き起こすので、バックスラッシュを使用するか、sed記号に置き換える必要があります。anewline\n

sed -i '' '/user_pref("mail.identity.id1.reply_on_top", 1);/ a\
user_pref("mail.identity.id1.sig_file", "/Users/illias.seba/Library/Mail/V2/MailData/Signatures/signature.html");\
user_pref("mail.identity.id1.sig_file-rel", "[ProfD]../../../Mail/V2/MailData/Signatures/signature.html");\
' ~/Library/Thunderbird/Profiles/*.default/prefs.js

または

sed -i '' '/user_pref("mail.identity.id1.reply_on_top", 1);/ a\
user_pref("mail.identity.id1.sig_file", "/Users/illias.seba/Library/Mail/V2/MailData/Signatures/signature.html");\nuser_pref("mail.identity.id1.sig_file-rel", "[ProfD]../../../Mail/V2/MailData/Signatures/signature.html");\n' ~/Library/Thunderbird/Profiles/*.default/prefs.js

関連情報