なぜこの単語はgrepになることができないのですか?

なぜこの単語はgrepになることができないのですか?

私は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élessgrep

編集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.txticonvISO8859-1

./rae-iso88591.txt: text/plain; charset=iso-8859-1

ベストアンサー1

まあ、これが問題かどうかはわかりませんが、正しい行を見つけることができない可能性のある理由の1つは、文字éの2つのエンコードによるものです。 Unicode文字U + 00E9(アクセント付きのラテン語小文字E)はグリフ全体であり、eU + 0301(アクセント付き)と結合されます。 UTF-8表現はc3 a9hexの合計です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, ...

おすすめ記事