Титла: Автоматизирано заместване на символи в името на файла Публикувано от: 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 рекурсивно. |