이 경우 생성된 .txt 파일을 사용하여 폴더가 있습니다.드래그, 복사, 붙여넣기Adobe Acrobat PDF 및 OSX의 텍스트 편집기에서. 저는 vim에서 이 파일들을 편집해왔습니다. 이제 grep을 사용하여 이 파일에서 주석을 찾습니다. 예를 들어,
grep -c "\[t\]" Herbert*
[t]
는 주석이며, 디렉토리에는 이름 접두어 Herbert*
(예: Herbert-02-Transformation.txt
, Herbert-14-Classification.txt
)가 붙은 22개의 파일이 있습니다. 문제는 grep
검색 문자열이 하나의 파일()에서만 발견되는데 Herbert-03-Square.txt
, 동일한 주석이 파일당 여러 번 나타나는 것입니다.
converted
잘못된 파일을 열면 상태 표시줄에 표시됩니다.
"Herbert-02-Transformation.txt" [converted] 276L, 57171C
unix.stack의 게시물원본 파일의 특수 문자가 PDF에서 vim으로의 프로세스에서 살아남아 문제를 일으키는 것으로 보입니다 grep
. 거친 문자를 제거하고 올바른 문자를 수동으로 삽입했습니다 :digraphs
. 편집된 파일 중 일부는 grep으로 검색할 수 있지만 다른 편집된 파일은 검색할 수 없습니다. 사용해 보았는데,
:e Herbert-02-Transformation.txt
:set encoding=utf-8`
:w
하지만 위와 같이 파일은 여전히 열려 있습니다. 이제 grep
작동하는 파일과 작동하지 않는 파일의 인코딩을 비교하는 방법을 알아내야 한다고 생각합니다 . 자세히 설명하는 적절한 도움말 페이지가 있습니다.파일 감지를 설정하는 방법이 문제를 피하기 위해 나는 이 문제를 조사하는데 1.5시간 이상을 소비했고 지금은 이것이 좋은 질문이라고 생각합니다...
답변1
가장 쉬운 방법은 문제 파일 중 하나에서 다음으로 몇 줄을 전달하는 것입니다 od
.
head Herbert-02-Transformation.txt | od -c
또는 첫 번째 줄에 이상한 점이 없으면 특정 문자열과 그 주위의 일부 문자를 찾으십시오.
od -c Herbert-02-Transformation.txt | grep -C 5 "\["
예를 들어:
$ echo "lorem ipsum [t] dolor sit amet" > foo.txt
$ od -c foo.txt
0000000 l o r e m i p s u m [ t ]
0000020 d o l o r s i t a m e t \n
0000037
"이상한" 문자가 표시됩니다 od
.
또 다른 유용한 도구는 file
파일 형식 및 기타 정보를 반환합니다.
$ file --mime foo.txt
foo.txt: text/plain; charset=us-ascii
답변2
해당 인코딩에 속하지 않는 잘못된 문자가 포함된 알려진 인코딩의 텍스트 파일이 있는 경우 를 사용할 수 있습니다 iconv -c -f charset -t charset file
. 선택되었습니다.
예를 들어 움라우트를 제거하려면 다음을 수행하십시오.
$ echo Nähkästchen | iconv -c -f us-ascii -t us-ascii
Nhkstchen
해당 문자가 의미가 있으면 검색 및 바꾸기가 더 적절할 수 있습니다. 실제로 내부에 무엇이 들어 있는지에 따라 다릅니다.