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

두 번째, 세 번째 줄을 다른 문자열로 바꾸면 '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

관련 정보