#sed #freebsd
#sed #freebsd
Вопрос:
У меня есть следующие строки:
XYZ2342
ABCD1323
KIL9824
И я хотел бы удалить все буквы в начале, поэтому я бы получил для приведенного выше примера:
2342
1323
9824
Я пробовал это:
echo "ABC12345" | sed 's/[[:alpha:]]*[[:digit:]]//'
2345
Но это также удаляет первую цифру, как я могу заставить sed удалять только буквы (примечание: они всегда ASCII).
Я использую реализацию sed во FreeBSD, если это уместно.
Комментарии:
1.
sed 's/[[:alpha:]]*//'
будет работать для данного примера..
Ответ №1:
Не могли бы вы, пожалуйста, попробовать следующее. Нам нужно заменить все до первого появления цифр с начала, поэтому здесь нам нужно использовать [^0-9]
регулярное выражение, что означает, что с начала заменяйте все до первого появления цифр на NULL здесь.
echo "ABC12345" | sed 's/^[^0-9]*//'
Комментарии:
1. Это работает, спасибо, я приму ответ (я удалил g, потому что мне нужно только одно вхождение)