В bash. Так что 001 file.ext
становится file.ext
. Как мне это сделать?Слить несколько наименований ведущих номеров и пробелов
ответ
Вы можете использовать два выражения seds. Первый удаляет все до последнего пространства, а второй удаляет ведущие цифры.
$ echo "001 fiile.ext" | sed -e 's/^.* //' -e 's/^[0-9]*//g'
fiile.ext
Это может не соответствовать потребностям плаката - например, если в имени файла есть пробелы, оставшиеся после того, как ведущие числа и пробелы будут удалены. Это может быть исправлено с небольшой настройкой вашего выражения sed: echo «001 fiile.ext» | sed -e 's/^ [0-9] * //' –
for f in *file.ext
do
newname=$(echo "$f" | sed 's/^[0-9 ]*//')
mv "$f" "$newname"
done
Или в чистом Баш:
shopt -s extglob
for f in *file.ext
do
mv "$f" "${f##+([0-9 ])}"
done
Если вы просто хотите, чтобы преобразовать имена файлов (как вары в сценарии), вы можете просто сделать что-то вроде:
[[ $FILENAME =~ ^[0-9\s]+(.+) ]] && FILENAME="${BASH_REMATCH[1]}"
Если вы пытаетесь на самом деле переименовать имена файлов в файловой системе, что-то вроде этого более подходит
for F in *.ext; do
[[ $F =~ ^[0-9\s]+(.+) ]] && mv "$F" "${BASH_REMATCH[1]}"
done
- 1. Предотвращение игнорирования ведущих пробелов с использованием IFS =
- 2. Regex для обработки ведущих пробелов (Notepad ++)
- 3. Сохранение ведущих пробелов в методе уценки
- 4. Сглаживание ведущих пробелов из остальной строки
- 5. Удаление ведущих, конечных и нескольких пробелов внутри строки
- 6. Beyond Compare 3.3.10 игнорирует флажки «ведущих пробелов» и „встроенный“ пробельных
- 7. Несколько наименований уровней из вывода (извлечения)
- 8. Удаление конечных и ведущих пространств
- 9. Как слить несколько файлов?
- 10. Как слить несколько словарей
- 11. Слить несколько SearchQuerySet
- 12. Несколько проектов установки для разных языков и фирменных наименований
- 13. Как слить несколько хэшей?
- 14. Возврат списка наименований
- 15. Regex для международных номеров - без пробелов
- 16. Игнорирование ведущих пробелов в квазиквадрате «ленивый текст» в Haskell Text.Shakespeare.Text
- 17. Функция удаления ведущих пробелов не изменяет строку в вызывающем?
- 18. Использование listchars для отображения ведущих пробелов в Vim
- 19. Игнорирование ведущих пробелов с символьным массивом в C
- 20. Сохранение ведущих пробелов в строках в базе данных
- 21. Список наименований в Erlang
- 22. Велоспорта через несколько номеров
- 23. Возможны несколько номеров var?
- 24. Удалить несколько пробелов
- 25. jqGrid убирает несколько пробелов
- 26. Сделайте несколько ведущих «#» знаков в строках формата?
- 27. Как слить несколько HTAccess перезаписываемых?
- 28. Как слить несколько файлов excel?
- 29. Как слить несколько запросов sql
- 30. Как слить несколько файлов патчей?
Итак, это ошибочный факт, что у вас есть два i в «файле»? То есть вы действительно хотите, чтобы он конвертировал из 001 fiile.ext в file.ext или вы хотите, чтобы он преобразовал 001 file.ext в file.ext? – jwir3