如何使用 sed 删除第一个数字之前的所有字母?

How do I remove all letters until the first digit with sed?

我有以下几行:

XYZ2342
ABCD1323
KIL9824

我想删除开头的所有字母,所以我会得到上面的例子:

2342
1323
9824

我试过这个:

echo "ABC12345" |  sed 's/[[:alpha:]]*[[:digit:]]//'
2345

但是它也删除了第一个数字,我怎样才能让 sed 只删除字母(注意:它们总是 ASCII)。

我正在使用 FreeBSD sed 实现,以防相关。

能否请您尝试以下。我们需要从开始替换所有内容,直到第一次出现数字,所以我们需要在这里使用 [^0-9] 正则表达式,这意味着从开始替换所有内容,直到第一次出现带有 NULL 的数字。

echo "ABC12345" | sed 's/^[^0-9]*//'