Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: angie_bg в Apr 26, 2013, 15:13



Титла: Автоматизирано заместване на символи в името на файла
Публикувано от: angie_bg в Apr 26, 2013, 15:13
Здравейте, имам с n файла (n>1000), които в името си съдържат кавички ("), което е допустимо за Linux, но създават проблеми с ntfs под Windows.
Моля за насоки за bash скрипт за преименуването им, като се заместят кавичките с апостроф (') или друг символ.


Титла: Re: Автоматизирано заместване на символи в името на файла
Публикувано от: dejuren в Apr 26, 2013, 15:49
Код:
rename s/\"/drug_simvol_ili_fraza/ *
забравих да предупредя, ако другия символ е апостроф, той също като кавичките трябва да се "неутрализира" с обратна наклонена черта:

Код:
rename s/\"/\'/ *

Всички файлове трябва да са в текущата директория. Въобще конструкцията е в този вид:

rename s/// file


между наклонените черти се вмъкват символите за смяна в името


Титла: Re: Автоматизирано заместване на символи в името на файла
Публикувано от: angie_bg в Apr 26, 2013, 18:07
Благодаря много, сработи!
Уточнение: командата трябва да се пуска по 2 пъти, тъй като първият път заменя само отварящата кавичка.

А нещо, което да работи рекурсивно? пропуснах да спомена, че файловете ми са със структура източник/година/месец/дата/файл, напр.:
/media/Ema/BAN/dariknews.bg/2012/10/01/С "Уроците на времето" стартират Есенни музикални дни-2012 в Димитровград.pdf


Титла: Re: Автоматизирано заместване на символи в името на файла
Публикувано от: dejuren в Apr 26, 2013, 18:46
за да не се пуска командата по два пъти това би трябвало да помогне:

rename s///g file

ще се заменят всички съвпадащи символи в името на файла.

Мислех и за рекурсивно, но все ми идват някакви комбинации от find, нещо като

find . -print | xargs rename s///g file или find . -name *\'* -print -exec rename s///g file {} \;

Може да си поекспериментираш с тези варианти, но не ги вземай за чиста монета, писах като чернова. Направи си копие в /tmp и тествай кой вариант те устройва.


Титла: Re: Автоматизирано заместване на символи в името на файла
Публикувано от: angie_bg в Apr 26, 2013, 19:28
Благодаря много! Ще направя опити, но дори с първоначалната команда ми спести много време.
 [_]3


Титла: Re: Автоматизирано заместване на символи в името на файла
Публикувано от: go_fire в Apr 26, 2013, 23:43
Ех Анджи да видим кой е позабравил регулярките.  ;D

Иначе е така и аз се не сещам как да стане без find рекурсивно.