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로 변환할 수 있습니다.