현재 죽어가는 하드 드라이브를 만지작거리고 있는데, 하드 드라이브 cp
에서 데이터를 가져오는 동안 다음과 같은 오류가 발생합니다.
cp: error reading ‘brokenFile’: Input/output error
# comparison: backtick: `, apostrophe '
sed
이제 오류 메시지를 새 메시지로 변환하는 호출을 사용하여 cp
실패한 파일을 다시 복사하려고 합니다(몇 번 성공했습니다) . 하지만 재미있는 인용문은 무엇입니까? 시작/끝도 다릅니다. 백틱이나 아포스트로피가 없습니다. 이것을 정규식에 복사/붙여넣었지만 더 좋은 방법이 있습니까? 어쩌면 작성을 사용할까요?
답변1
특정 문자를 찾는 데 유용한 명령은 Free recode(이전의 GNU recode)입니다.
$ echo -n ‘’ | recode ..dump
UCS2 Mne Description
2018 '6 left single quotation mark
2019 '9 right single quotation mark
또는 unicode
명령데비안에서:
$ unicode ‘’
U+2018 LEFT SINGLE QUOTATION MARK
UTF-8: e2 80 98 UTF-16BE: 2018 Decimal: ‘
‘
Category: Pi (Punctuation, Initial quote)
Bidi: ON (Other Neutrals)
U+2019 RIGHT SINGLE QUOTATION MARK
UTF-8: e2 80 99 UTF-16BE: 2019 Decimal: ’
’
Category: Pf (Punctuation, Final quote)
Bidi: ON (Other Neutrals)
답변2
생성된 문자는 U+2018 LEFT SINGLE QUOTATION MARK
( ‘
) 및 U+2019 RIGHT SINGLE QUOTATION MARK
( ’
) 입니다. 이는 현재 로케일을 기반으로 생성된 영어 인쇄 작은따옴표입니다. 현재 키보드 레이아웃에 작성 키가 있는 경우 Compose<'(열기 따옴표) 및 (닫기 따옴표) Compose>'를 사용하여 입력 할 수 있습니다.
그러나 다른 도구를 사용하여 명령 출력을 처리하려는 경우(예: 귀하의 경우) 일반적으로 sed
환경 변수를 로 설정하여 로컬로 변경하는 것이 더 쉽습니다. 이런 방식으로 프로그램은 순수 ASCII(보다 일반적으로 모든 출력은 사람이 읽을 수 있음)로 오류 메시지를 출력하며 일반적으로 텍스트 기반 도구를 사용하여 처리하기가 더 쉽습니다.LANG
C