我正在尝试删除包含字母和带空格的字符之外的其他内容的行。数字,逗号,引号,数学符号:必须删除与它们的任何一行。
输入:
FISIOLOGIA UMANA
FISIOLOGIA UMANA
http://id.loc.gov/vocabulary/subjectSchemes/FI
Sepúlveda, Luis
La sirenetta Walt Disney
La sirenetta
CFIV007842
CFIV006619
Lubac, Henri : de
Roma
Run Code Online (Sandbox Code Playgroud)
预期产量:
FISIOLOGIA UMANA
FISIOLOGIA UMANA
La sirenetta Walt Disney
La sirenetta
Roma
Run Code Online (Sandbox Code Playgroud)
到目前为止,我:%g!:[A-Za-z]:d与一起使用Vim,应该可以解决问题。奇怪的是,它声明它匹配每行(如预期的那样),但是它不会删除发现非字母字符的行。这种行为背后的原因是什么?如何巧妙地解决这个问题?
:%g!:[A-Za-z]:d正在检查哪些行与字母表匹配,然后删除不匹配的行。由于每行都匹配,因此不会删除任何行。
我认为搜索要删除的字符会更容易:
:g/[^a-zA-Z ]/d_
Run Code Online (Sandbox Code Playgroud)