Viji
@Viji
Associate DevOps Engineer

Как удалить все цифры, пробелы и тире в начале строки — в любом порядке?

Хочу оптимизировать эту ужасную строку, чтобы начиналась только с буквы:

extracted_file_name=$(printf '%s' "$extracted_file_name" | sed -e 's/^[[:space:]]*//' | sed -e 's/^[0-9]*//g' | sed -e 's/^[[:space:]]*//' | sed -e 's/^[0-9]*//g' | sed -e 's/^[[:space:]]*//')

Работает, но некрасиво.
  • Вопрос задан
  • 1374 просмотра
Решения вопроса 2
xotkot
@xotkot
хорошо есть и хорошо весьма
проще идти от обратного, удалить вначале всё что не есть буква
sed -e 's/^[^[:alpha:]]\+//'
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
extracted_file_name=$(printf '%s' "$extracted_file_name" | sed -e 's/^[[:space:]0-9-]*//')
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Viji
@Viji Автор вопроса
Associate DevOps Engineer
собственно говоря, наверное так... хотя не совсем!

extracted_file_name=$(printf '%s' "$extracted_file_name" | sed -e 's/^[[:space:]]*[0-9]*[-]*//')


например такие случаи не учитывает
extracted_file_name=" --- 123 234 abscdfgdgdfg.txt"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы