Erro com sed no comando inválido do MAC OS X

0

Eu tenho um erro no MAC OS X quando estou usando sed , que é assim:

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

Quando eu altero a segunda e a terceira linha por outra string como 'abcdefgh...' , é bom, mas com essa string que tem muitos caracteres especiais, é muito errado.

O erro que aparece é:

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

    
por Nicolas Hulot 03.03.2015 / 09:53

1 resposta

1

O newline para sed ' a ppend é' quebra ', então você precisa inverter o newline ou sustentar% símbolo \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

ou

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
    
por 03.03.2015 / 10:12