如何使用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)