私は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
まあ、これが問題かどうかはわかりませんが、正しい行を見つけることができない可能性のある理由の1つは、文字éの2つのエンコードによるものです。 Unicode文字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.