2013-06-16 3 views
1

мне интересно, как сделать массовый переименовать (с помощью переименования или СЭД/AWK), для файлов, как это:СЭД удаления пробелов до и после того, как что-то

Name 1 - Name 2 - Name 3.doc 
Name 1- Name 2 - Name 3.doc 
Name 1 -Name 2 - Name 3.doc 

проблема заключается в том, что я хочу, чтобы все файлы в одной и той же схеме, например

Name 1-Name 2-Name 3.doc

без пробелов на всех. Я читаю документацию переименования, но не могу найти способ сделать это.

ответ

2

Попробуйте сделать это:

rename 's/\s*-\s*/-/g' *.doc 

Вам нужен в Perl rename, see this post

+0

Работает отлично, спасибо человеку, только одна проблема - это удаление пробелов только до и после первого '-', а не второго. ура! – user1854236

+0

OK, исправлено, копирование снова =) –

2

Как насчет:

for file in *.doc; do 
    mv "$file" "$(sed 's# *- *#-#g' <<< "$file")" 
done 
+0

но он удаляет все пробелы, и мне нужно удалить только пробелы до и после «-», возможно ли вообще одно действие? – user1854236

+0

@ user1854236 Обновлено решение. –

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