Vir*_*tos 3 bash shell awk sed
我试图仅使用sed删除所有用大写字母写的单词:
sed -r "s/\b[A-Z]\w*\s*//g" < file1 > file2
Run Code Online (Sandbox Code Playgroud)
但是此解决方案会捕获所有以大写字母开头的单词并将其删除(这不是目标)。
这是一个例子:
file1内容:
sed -r "s/\b[A-Z]\w*\s*//g" < file1 > file2
Run Code Online (Sandbox Code Playgroud)
结果应该是这样的(file2内容):
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
Run Code Online (Sandbox Code Playgroud)
每行至少包含一位数字或一个小写字母,应保持原样(不应删除)。
使用egrep:
egrep "[^[:upper:] ]" file
BBbbbbb
AbAbAbAb
aaaaaBBBBB
A1-B1
a1-b1
A1-b1 AA
Abbbb AAA
Abbbb Baaaa Aaaaa AB
AAAAAA1
BBBBBBb
AAAAAA 1
BBBBBB b
Run Code Online (Sandbox Code Playgroud)
或使用awk:
awk '/[^[:upper:] ]/' file
Run Code Online (Sandbox Code Playgroud)
或使用sed:
sed -n '/[^[:upper:] ]/p' file
Run Code Online (Sandbox Code Playgroud)