Sed中的正则表达式空格字符

Man*_*eli 11 regex sed

我几乎尝试了所有东西(我猜)但没有任何效果.(操作系统:Ubuntu 12.04)

要匹配的表达式(从文本文件中删除):

a c 4
a k 23
o s 1
Run Code Online (Sandbox Code Playgroud)

我尝试了什么:

's/[[a-z][:space:][a-z][:space:][0-9]]\{1,\}//gi'
's/.\s.\s[0-9]+//g'
's/[:alpha:][:space:][:alpha:][:space:][:digit:]+'
Run Code Online (Sandbox Code Playgroud)

per*_*eal 16

这应该匹配:

sed 's/[a-z][ ]*[a-z][ ]*[0-9]*//gi'
Run Code Online (Sandbox Code Playgroud)

你的第一次尝试错过了几个方括号,你不需要最外面的一个:

sed 's/[a-z][[:space:]][a-z][[:space:]][0-9]\{1,\}//gi' input
Run Code Online (Sandbox Code Playgroud)

你的第二个例子失败了,因为你需要逃避它+,但它仍然只适用于gnu sed:

sed 's/.\s.\s[0-9]\+//g' input
Run Code Online (Sandbox Code Playgroud)

还有一些类似的问题与最后一个:

sed 's/[[:alpha:]][[:space:]][[:alpha:]][[:space:]][[:digit:]]\+//' input
Run Code Online (Sandbox Code Playgroud)