보관 된 HTML 페이지에서 인코딩 오류를 수정하려고합니다. 내 문제는 데이터가 특수 문자를 잡아 내지 않아서 sed가 이상하게 작동한다는 것입니다. 나는 -r 스위치 사용 여부에 관계없이 모두 시도했다.SED 잡아 특수 문자
내 데이터는 다음 Budapesti ??p?t?©szeti Filmnapok k??l??nkiad??s
Sed의 명령
REPLACE�t?�szeti Filmnapok k??l??nkiad??s
나 '결과를 : 나는 레코딩하지 않고 얻을
sed -i.bak 's|Budapesti.*|REPLACE|g' index.html
및 결과 기대하는 것은 :
REPLACE
어떻게 든 인코딩과 관련이있는 것으로 보입니다. recode iso-8859-2 index.html
을 먼저 실행하면 sed가 정상적으로 작동하고 예상되는 결과를 얻습니다. 여기
는 레코딩하기 전에 i ??p?t?Šs
부분에 대한 진수 바이트 :
69 20 3F 3F 70 3F AD 74 3F A9 73
및 레코딩 후 :
69 20 3F 3F 70 3F C2 AD 74 3F C5 A0 73
BTW, 이것이 내가 레코딩하지 않고 무엇을 얻을 :
REPLACEt?Šs
52 45 50 4C 41 43 45 AD 74 3F A9 73
최신 gsed (GNU sed) 4.2.2를 사용하고 있습니다.
당신은 무엇 출력을 기대합니까? – anubhava
첫 번째 명령은 저에게 효과적입니다. –
인코딩과 관련이있는 것 같습니다. recode 명령과 문제가있는 문자의 파일에 대한 16 진 코드를 포함하여 질문에 더 많은 정보를 추가했습니다. – zsero