如何使用 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]*//'
我有以下几行:
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]*//'