0

次の形式の長いテキスト ファイルがあります。

024 AF Ethiopia text text text text etc
021 XX Germany  text text text text etc
083 AZ India    text text text text etc
...
etc

私がやりたいことは、別のテキスト ファイルを使用して上記のファイルの大陸コードを確認する
ことです。正しいコードに変更されていない場合は、大陸が正しいかどうかを確認してください。

すべての国がこの形式 (大陸の国) のテキスト ファイルがあります。

AZ Afghanistan
EU Albania
AF Algeria
EU Andorra
AF Angola
AM Argentina
AZ Armenia
OC Australia
EU Austria
 ....
etc

これはVimで可能ですか?

4

1 に答える 1

1

これを再現可能な方法で完全に自動化して解決するには、小さなPerl (またはAWK ) スクリプトを作成します。これらの専用言語は Vimscript よりも適しているからです (ただし、Vimscript でも可能です!)。

ただし、1 回限りの迅速なアクションとして、一致しないすべての行に一致する検索パターンを次のように組み立てます。

/^\%(.*\<\%(<C-r>=join(readfile('database.txt'),'\|')<CR>\)\>\)\@!.*$<CR>

これはdatabase.txtファイルを読み込み、行ごとに 1 つのブランチの正規表現を作成し、単語全体を で照合し\<...\>、 を使用\@!して、読み込まれたブランチの 1 つを含まない行のみを照合します。その後、すべての間違った行が強調表示され、 を使用nしてそれらを調べて修正できます (:help i_CTRL-X_CTRL-Tここではシソーラス補完 ( ) を使用することもできますが、手動で行います)。

于 2013-03-04T12:06:43.237 に答える