2015-10-22 3 views
2

Я очень новой для этого регулярного выражения вещей, я имел некоторую помощь до и у меня есть управление исправить некоторые мои проблемы регулярных выражений, но теперь у меня есть проблемаУдалите пробелы перед расширением файла с регулярным выражением

С Total Commander вас можно изменить имя с помощью регулярного выражения, и я пытаюсь переименовать каждый файл, который у меня есть, или один пробел перед расширением файла.

Мне просто нравится находить каждый файл, у которого есть пробел перед расширением файла, поэтому я могу его удалить.

+0

Try '\ s (\. [^.] +) $' и заменить на '$ 1'. –

+0

Будут ли в ваших именах другие точки, и если вы хотите сохранить предыдущие пробелы или заменить их тоже? – Bohemian

ответ

1

Используйте

\s+(\.[^.]+)$ 

Заменить $1. Удалите +, если вы хотите совместить только 1 пробел. Держите +, чтобы удалить все пробелы перед расширением.

См. demo.

+0

@Cazz: Я тестировал это в TC, и это сработало. –

+0

Спасибо большое, да, он работает, он даже удаляет расширение файла, но это нормально. у всех есть .zip, поэтому я могу легко добавить их после. Спасибо – Cazz

+0

На самом деле, если вы используете '$ 1' в замене, расширения будут восстановлены после сопоставления. Смотрите, '(...)', а не только совпадения, он также * фиксирует * (сохраняет в буфере) соответствующий подтекст. '$ 1' - это обратная ссылка на этот текст. –

0

сделать это, как это в Linux

find 'path to folder' -type f -regextype posix-awk -regex '.*/.+ *[.][A-Za-z]{3}$' -exec rm -f {} \; 

-type f # найти все файлы

-regextype posix-awk -regex '.*/.+ *[.][A-Za-z]{3}$' # использовать AWK, чтобы соответствовать еще одно пространство с последующим расширением и удалить их (осторожно!)

Смежные вопросы