如何使用sed删除所有字母直到第一个数字?

M.E*_*.E. 2 freebsd sed

我有以下几行:

XYZ2342
ABCD1323
KIL9824
Run Code Online (Sandbox Code Playgroud)

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

2342
1323
9824
Run Code Online (Sandbox Code Playgroud)

我试过这个:

echo "ABC12345" |  sed 's/[[:alpha:]]*[[:digit:]]//'
2345
Run Code Online (Sandbox Code Playgroud)

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

我正在使用 FreeBSD sed 实现,以防万一。

Rav*_*h13 5

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

echo "ABC12345" | sed 's/^[^0-9]*//'
Run Code Online (Sandbox Code Playgroud)

  • 这有效,谢谢,我会接受答案(我已删除 g 因为我只想出现一次) (2认同)