如何使用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]*//'

  • That works thanks, I will accept the answer (I have removed the g because I just want one occurrence)

以上是如何使用sed删除所有字母直到第一个数字?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>