【问题标题】:How do I remove all letters until the first digit with sed?如何使用 sed 删除第一个数字之前的所有字母?
【发布时间】:2021-03-28 06:58:12
【问题描述】:

我有以下几行:

XYZ2342
ABCD1323
KIL9824

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

2342
1323
9824

我试过这个:

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

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

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

【问题讨论】:

  • sed 's/[[:alpha:]]*//' 适用于您给定的样本..

标签: sed freebsd


【解决方案1】:

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

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

【讨论】:

  • 行得通,谢谢,我会接受答案(我已经删除了 g,因为我只想出现一次)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多