나는 busybox,v에만 액세스할 수 있습니다 1.27
.
PDF 문서에서 추출한 대용량 TXT 파일을 TXT 사전으로 사용하여 콘솔 친화적으로 만들려고 합니다. 내가 얻고 싶은 단어는 줄의 첫 번째 단어입니다. 다음으로 정의가 나옵니다.
Word I'm grepping for:
patético
제가 사용하는 안감은 이렇습니다.
cat ./rae.txt | grep '^patético'
cat
내가 찾고 있는 단어를 더 빠르고 효율적으로 삭제할 수 있기 때문에 이용되고 있습니다. 줄의 마지막 부분(용어)을 제거하고 몇 가지 키 입력을 저장하면 됩니다.
대부분의 경우 내가 검색하는 단어의 정의를 얻습니다(예: ) anhelo
.
$ grep -e '^anhelo' ./rae.txt
anhelo. (Del lat. anhelus). 1. m. Deseo vehemente.
anheloso, sa. (Del lat. anhelosus). 1. adj. Que tiene o siente anhelo. Anhelosos de con- cluir. 2. adj. Propio de lo que muestra anhelo. Mirada, búsqueda anhelosa. 3. adj. Dicho de la respiración: Frecuente y fatigosa. 4. adj. desus. Que respira de este modo.
보시다시피 각 행에는 정의 anhelo
와 가 있습니다 anheloso
.
첫째, 문제는 단어 뒤의 점 및/또는 쉼표에 있는 것 같습니다 .
. 이는 일반 텍스트가 아닌 특수 문자로 확장되거나 해석되는 것 같습니다. ,
그러나 그것은 진실이 아니다.
내 질문은 다음과 같습니다
왜 grep을 할 수 없나요 ^patético
?
왜 이것이 작동하지 않습니까?
grep -e '^patético' ./rae.txt
내가 실행중인 텍스트 grep
는 다음과 같습니다
patería. 1. f. coloq. Chile y Perú. Muestra ocasional y fingida de amistad.
paternal. (De paterno). 1. adj. Propio del afecto, cariño o solicitud de padre.
paternalismo. 1. m. Tendencia a aplicar las formas de autoridad y protección propias del padre en la familia tradicional a relaciones sociales de otro tipo; políticas, laborales, etc. U. m. en sent. peyor.
paternalista. 1. adj. Dicho de una persona: Que adopta el paternalismo como forma de conducta. U. t. c. s. 2. adj. Que responde o parece responder a dicha actitud.
paternalmente. 1. adv. m. De modo propio o digno de un padre.
paternidad. (Del lat. paternitas, -atis). 1. f. Cualidad de padre. 2. f. Tratamiento que en algunas órdenes dan los religiosos inferiores a los padres condecorados de su orden, y que los seculares dan por reverencia a todos los religiosos en general, considerándolos como padres espirituales.
paterno, na. (Del lat. paternus). 1. adj. Perteneciente o relativo al padre. 2. adj. Propio del padre. 3. adj. Derivado de él. V. casa paterna
paternóster. (Del lat. Pater noster, Padre nuestro, palabras con que principia la oración dominical). 1. m. Oración del padrenuestro. 2. m. Padrenuestro que se dice en la misa, y es una de las partes de ella. 3. m. Cada uno de los aditamentos de alambre que se adaptan al chambel para aumentarle su capacidad de pesca. 4. m. Chambel ya preparado con estos artilugios. 5. m. coloq. Nudo gordo y muy apretado.
patero, ra. (De pato1). 1. adj. Chile y Perú. Adulador, lisonjeador. U. t. c. s. 2. m. Cazador de patos salvajes.
pateta. (De pata1). 1. m. coloq. diablo (|| príncipe de los ángeles rebelados). Ya se lo llevó pateta. No lo hiciera pateta. 2. m. coloq. Persona que tiene un vicio en la conformación de los pies o de las piernas. 3. m. pl. u. c. sing. Méx. diablo (|| príncipe de los ángeles rebela- dos). EL patetas.
patéticamente. 1. adv. m. De modo patético.
patético, ca. (Del lat. patheticus, y este del gr. o, que impresiona, sensible). 1. adj. Que es capaz de mover y agitar el ánimo infundiéndole afectos vehementes, y con particularidad dolor, tristeza o melancolía.
patetismo. 1. m. Cualidad de patético.
patí. (De or. guar.). 1. m. Arg. y Ur. Pez grande de río, de color gris azulado con man- chas oscuras. 2. m. C. Rica. Especie de empanada rellena de carne o papas.
-patía. (Del lat. -pathia, y este del gr. a, de la raíz -, sufrir, experimentar). 1. elem. com- pos. Significa 'sentimiento', 'afección' o 'dolencia'. Homeopatía, telepatía.
patiabierto, ta. (De pata1 y abierto). 1. adj. coloq. Que tiene las piernas torcidas e irreg- ulares, y separadas una de otra.
그건 그렇고, 이 단어는 단지 patético
모든 단어 가 아닙니다 . 내 시스템은 UTF-8을 지원하지 않으며 언어 팩도 설치되어 있지 않습니다. 문자는 단지 바이트의 흐름이기 때문에 이것이 문제가 되지 않을 것이라고 생각하며, 표시되지 않는 단어를 검색하는 데 사용하면 문제가 없을 것입니다 .tilde
é
less
grep
편집 0
로케일
LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
파일-irae.txt
rae.txt: text/plain; charset=utf-8
편집 1
콘솔 코드 페이지
C
POSIX
ANSI_X3.110-1983
ANSI_X3.4-1968
ISO-8859-1
ISO-8859-15
ISO-8859-2
편집 2
처리한 후에 rae.txt
는iconv
ISO8859-1
./rae-iso88591.txt: text/plain; charset=iso-8859-1
답변1
글쎄, 이것이 문제인지는 확실하지 않지만 올바른 행을 찾을 수 없는 가능한 이유 중 하나는 문자 é의 두 인코딩 때문입니다. 유니코드 문자 U+00E9(악센트가 있는 라틴어 소문자 E)는 전체 글리프 자체이며 e
U+0301(악센트 결합)과 결합됩니다. UTF-8 표현은 c3 a9
hex 의 합입니다 65 cc 81
.
질문의 텍스트를 복사하면 문자가 U+00E9로 나타납니다.
그래서:
$ grep ^patético file.txt # no output
$ grep ^patético file.txt
patético, ca. (Del lat. patheticus, ...
물론 시스템 설정에 따라 캐릭터를 먼저 입력하면 문제가 발생할 수 있지만 다음과 같은 방법으로 이 문제를 해결할 수 있습니다.
$ grep $'^pat\xc3\xa9tico' file.txt
patético, ca. (Del lat. patheticus, ...
ISO 8859-1로 변환하면 단일 바이트로 변환되므로 로케일 e9
내에서는 단일 바이트 면 일치하기에 충분합니다. 적어도 내 시스템에서는 UTF-8 로케일을 사용하더라도 단일 바이트는 유효하지 않은 문자가 되어 일치하지 않습니다.C
.
e9
.
물론 UTF-8 터미널에는 여전히 유효하지 않은 문자이므로 출력은 다음과 같습니다.
$ iconv -f utf8 -t latin1 file.txt | LC_ALL=C grep $'^pat.tico'
pat�tico, ca. (Del lat. patheticus, ...
답변2
@cas가 제안한 대로 iconv를 통해 utf-8 입력을 파이핑하는 것이 작동할 수 있습니다. 노력하다
iconv -f utf-8 -t CP1252 rae.txt | grep -e '^patético'
작동하려면 콘솔 코드 페이지가 Win1252 또는 Latin1인지 확인하세요.
Win10에서는 busybox-w32 v1.33을, TinyCore10에서는 v1.29를 사용하여 테스트되었습니다.
진정한 *nix 스타일에서 실행 중인 경우 @Inian 힌트와 같이 콘솔의 코드 페이지를 확인 및/또는 수정하여 제대로 작동하도록 해야 합니다.
부록
간단히 검색하면 깨끗한 8비트 코드 페이지에 있는 문자의 CharCode를 추측하는 것을 피할 수 있습니다.
cat rae.txt | grep -e '^pat.tico'
또는 UTF-8에서 2개(또는 필요한 수) 포인트.
cat rae.txt | grep -e '^pat..tico'
여행 비용은 변경될 수 있습니다.
답변3
예! 감사합니다. :)
마침내 나에게 효과가 있었던 UTF-8
것은 ISO8859-1
.일반적인 표현와일드카드 대신. 마침내 내가 찾고 있던 정의를 얻었습니다.
grep -e '^pat.tico' ./rae-iso88591.txt
생산하다
patético, ca. (Del lat. patheticus, y este del gr. o, que impresiona, sensible). 1. adj. Que es capaz de mover y agitar el ánimo infundiéndole afectos vehementes, y con particularidad dolor, tristeza o melancolía.
답변4
때로는 시작 부분에 추가 공백이 포함된 경우 아래 와일드카드를 사용합니다.
grep "[[:space:]]*\?patético," file
산출
patético, ca. (Del lat. patheticus, y este del gr. o, que impresiona, sensible). 1. adj. Que es capaz de mover y agitar el ánimo infundiéndole afectos vehementes, y con particularidad dolor, tristeza o melancolía.