我有一个这种格式的长文本文件:
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吗?
答案 0 :(得分:1)
要以可重复的方式解决这个问题并完全自动化,我会编写一个小的 Perl (或 AWK )脚本,因为这些特殊用途的语言比Vimscript(虽然它也有可能!)
然而,为了快速一次性动作,我会组装一个搜索模式,匹配所有不匹配的行,如下所示:
/^\%(.*\<\%(<C-r>=join(readfile('database.txt'),'\|')<CR>\)\>\)\@!.*$<CR>
这将读入database.txt
文件,并为每行创建一个分支的正则表达式,与\<...\>
的整个单词匹配,并使用\@!
仅匹配不包含的行其中一个读入分支。之后,应突出显示所有错误的行,并且您可以使用n
通过它们并进行更正(手动,尽管您可以在此处使用词典完成(:help i_CTRL-X_CTRL-T
))。