我有一个大文本文件,每行有数千个单词.
如何删除以大写字母开头的所有行以及仅包含单个字母的所有行.
A -> To be deleted
a -> To be deleted
abjurer
abkar
abkari
Abkhas -> To be deleted
Abkhasian -> To be deleted
ablach
ablactate
ablactation
B -> To be deleted
b -> To be deleted
Bounce -> To be deleted
...
...
Run Code Online (Sandbox Code Playgroud)
是否可以使用Bash执行此操作.
谢谢.
您可以使用:
grep -Ev '^([A-Z]|.$)' file
abjurer
abkar
abkari
ablach
ablactate
ablactation
Run Code Online (Sandbox Code Playgroud)
或者使用sed来保存更改:
sed -i.bak -r '/^.$|[A-Z]/d' file
Run Code Online (Sandbox Code Playgroud)
我会说:
$ awk 'length($0)>1 && !/^[A-Z]/' file
abjurer
abkar
abkari
ablach
ablactate
ablactation
Run Code Online (Sandbox Code Playgroud)
这会检查字符串:
你也可以关注hek2mgl的好建议,!/^[[:upper:]]/'
而!/^[A-Z]/
不是依赖你的语言环境.
awk '!/^([[:upper:]]|[[:alpha:]]$)/' file
grep -Ev '^([[:upper:]]|[[:alpha:]]$)' file
sed -r '/^([[:upper:]]|[[:alpha:]]$)/d' file
Run Code Online (Sandbox Code Playgroud)