Как удалить все цифры, пробелы и тире в начале строки — в любом порядке?
Хочу оптимизировать эту ужасную строку, чтобы начиналась только с буквы:
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:]]*//')
если можно, почему вы в регулярке пишите так
1) ^[^[ ? - зачем нужны два символа начала строки?
2) почему вы также включаете \+ , это значит один раз и более, так?
1) ^[^[ ? - зачем нужны два символа начала строки?
второй символ "^" это не символ начала строки, у него другой контекст, а именно отрицание
[[:alpha:]] - все буквы
[^[:alpha:]] - всё кроме букв
вы же написали
чтобы начиналась только с буквы
а кроме цифр, пробелов и тире есть другие символы, та же пунктуация, управляющие символы и др.
2) почему вы также включаете \+ , это значит один раз и более, так?
да, в sed "+" экранируется "\+", и да он здесь означает одна или больше не букв