파일에서 <93><94> 기호를 제거하는 방법은 무엇입니까? ""와 동일

파일에서 <93><94> 기호를 제거하는 방법은 무엇입니까? ""와 동일

Bash에서 PDF 파일의 텍스트를 복사하고 있는데 vi 다음과 같은 줄이 나타납니다.

echo <93>The Hypotenuse is $hypotenuse<94>

나는 vi그것을 다음과 같이 변경해 보았습니다.

s/<93>/"/g

하지만:

E486: Pattern not found: <93>

그리고 통과 sed:

sed 's/'`echo "\093"`'/"/g' par.sh

그리고:

sed 's/'`echo "\094"`'/"/g' par.sh

그리고:

sed 's/\<93\>/\"/g' aa.sh
echo В“The Hypotenuse is $hypotenuseВ”

무엇을 사용해야 하는지 알려주실 수 있나요?

답변1

존재하다표시되는 ASCII 문자가 아닌 2개의 특수 문자 각각에 대해 키 시퀀스를 입력해야 합니다(커서를 그 위에 놓으면 전체 ASCII 시퀀스가 ​​강조 표시됩니다).

  • Ctrl+ v, x, 9, 3바꾸기<93>
  • Ctrl+ v, x, 9, 4바꾸기<94>

따라서 검색 명령은 다음과 같습니다.

:%s / Ctrl+ v, x, 9, 3/"/g

답변2

Pass sed, 리터럴 문자를 사용할 수 있습니다.

sed -e 's/”/"/g' -e 's/“/"/g' file

또는 perl유니코드 코드 포인트와 함께 사용됩니다.

perl -CSD -pe 's/\x{201C}|\x{201D}/"/g' file

답변3

또 다른 방법이 있는데 Perl을 사용하는 것입니다.

perl -i.bak -pe 's/[^[:ascii:]]//g' file
  • -i 플래그는 원본 파일의 백업을 생성합니다.

답변4

StackOverflow에서 비슷한 질문을 찾았고 이 솔루션이 작동했습니다.

iconv -f cp1252 -t utf8 입력 파일.csv > 출력 파일.csv

간단한 설명 - 문자는 cp1252 인코딩으로 되어 있으며 utf8로 변환할 수 있습니다.

관련 정보