我正在尝试使用sed删除仅由大写字母编写的所有单词:
sed -r "s/\b[A-Z]\w*\s*//g" < file1 > file2
但是这种解决方案捕获所有以大写字母开头的单词并将其删除(这不是目标)。
下面是一个例子:
file1内容:
AAAAAAAAAAAA
BBbbbbb
AbAbAbAb
aaaaaBBBBB
AAAAAA BBBBBB
A1-B1
a1-b1
A1-b1 AA
AAAAA BBBBB AAAAA
Abbbb AAA
AAAAA AAAABB
Abbbb Baaaa Aaaaa AB
AAAAAA1
BBBBBBb
AAAAAA 1
BBBBBB b
结果应该像这样(file2的内容):
BBbbbbb
AbAbAbAb
aaaaaBBBBB
A1-B1
a1-b1
A1-b1 AA
Abbbb AAA
Abbbb Baaaa Aaaaa AB
AAAAAA1
BBBBBBb
AAAAAA 1
BBBBBB b
每一行至少包含一个数字或小写字母,不能被删除。
awk '/[^A-Z ]/'
在我的标准Ubuntu 12.4上无法工作,因为本地语言会干扰A-Z
。使用awk '/[^[:upper:] ]/' file
更稳定和便携。 - Jotne