Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

как выполнить замену текста в файлах одного типа?
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
annix



Joined: 08 May 2008
Posts: 24

Post (Separately) Posted: Sun Aug 17, 2008 10:23    Post subject: как выполнить замену текста в файлах одного типа? Reply with quote

Возникла необходимость добавить один символ ко всем файлам определённого типа (lap), т.е. всем, что есть на винте. Вообще всем.
Как?

Возможно, для моей ситуации существует более удобное решение, опишу её на всякий случай:
До тех пор, пока я не узнала о существовании каталогизаторов мультимедиа файлов, я долгое время складывала музыку и прочее в папки по алфавиту (по именам исполнителей или авторов), а для чем-либо интересных файлов создавала на каждый трек или альбом т.н. "список", файл lap (я пользуюсь LA) с тем же именем, что и сам трек, и уже эти lap'ы копировала в папочки по стилям, настроениям, сборникам к различным ситуациям, по множеству признаков, потому что один файл мог входить в несколько разных групп и если его самого копировать много раз, учитывая общие масштабы фонотеки получается большая и бесполезная трата места на винте и потом трудно конкретный файл найти. Вот я и потихоньку несколько лет вела такую фонотеку. Но недавно возникла необходимость сменить букву диска (настоятельная), а lap'ы привязаны (как я поняла) к этой букве. Какие я вижу выходы:
1. "Срочно осваиваю каку-нибудь каталогизатор и пользуюсь только им". Это я буду делать в любом случае, но сделать это "срочно" времени нет совершенно, особенно, учитывая, что их куча разных.
2. Помечаю все существующие lap'ы, например, дефисом перед их именами и постепенно, на те файлы, которые очень нужно послушать, за которыми всё равно лезешь в алфавитный каталог, создавать потихоньку новые lap'ы, чтобы хотя бы наиболее часто прослушиваемые треки иметь под рукой, а старые переименовать, чтобы не путать с новыми. Заодно и инвентеризацию постепенно можно провести (что не лишне).
3. Как-то где-то выяснить, можно ли с помощью какой-то надстройки над LA сделать так, чтобы все мои lap'ы работали с новой буквой диска. Но для меня на этот вопрос найти ответ гораздо труднее, сначала я решила сросить у вас.

Благодарю, что дочитали. Я понимаю, что ситуацию несколько глупая, но мне так жаль моей фонотеки, мне не очень нравятся каталогизаторы (не сам принцип, а то, как они сделаны, в большинстве случаев, но я полюбому буду какой-нибудь расшаривать, это железно), я так привыкла в LA, он такой удобный, и я просто хочу выяснить, есть ли возможность поймать двух зайцев: и букву диска изменить и фонотеку сохранить. Если не найду решения, то обойдусь, конечно, одним зайцем, но проконсультироваться у специалистов полюбому надо.
зы: необходимость в новой букве диска заключается не в том, что я не знаю как её сменить Smile.

 !  CaptainFlint:
Заголовок темы исправлен на более соответствующий вопросу и обсуждению.


Last edited by annix on Sun Aug 17, 2008 11:10; edited 1 time in total
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Sun Aug 17, 2008 11:10    Post subject: Reply with quote

Alt+F7. Находишь все *.lap-файлы. Выносишь на панель. Выделяешь (Alt+Num+, чтобы выделились только файлы с нужным расширением, если нашлось что-то ещё). Жмёшь Ctrl+M. Добавляешь нужный символ (какой символ и куда конкретно нужно вставить не указано, поэтому нужный шаблон не скажу).
Это только один из способов.
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
annix



Joined: 08 May 2008
Posts: 24

Post (Separately) Posted: Sun Aug 17, 2008 11:11    Post subject: Reply with quote

опа, как мы одновременно :). Пасиб, сейчас попробую.

---------------------
Спасибо, всё получилось.
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Sun Aug 17, 2008 13:23    Post subject: Reply with quote

annix wrote:
есть ли возможность поймать двух зайцев: и букву диска изменить и фонотеку сохранить

А при чем тут вообще переименование файлов lap? Я-то понял проблему совсем по-другому (а не ухватился за странную, imho, идею с переименованием старых lap-файлов). Нестыковка, как я понял, с плейлистами, в которых применены абсолютные пути к медиа-файлам. После смены буквы диска файлы lap стали нерабочими (возможно, лишь частично, только для записей ссылавшихся на файлы с переименованного диска).

Так чего же файлы-то переименовывать в этом случае? Их просто нужно отредактировать, заменив ссылки на медиа-файлы, которые благодаря переименованию диска стали нерабочими. И сделать эту операцию можно c помощью Тотала (найти все lap файлы, как описал D1P) и вот такого скрипта: http://forum.wincmd.ru/viewpost.php?p=14843
Заменять нужно текст "x:\" на "y:\" (x-старая буква диска, y-новая). Единственное, что нужно учесть, так это последовательность переименований в случае, если переименовывалось сразу несколько букв дисков., чтобы не произошло накладки, но это разруливается весьма просто (не говорю как именно, ибо не знаю как производились переименования дисков).

ps Написанное мною имеет смысл, если речь идет именно о плейлистах ("списках") Light Alloy простого текстового формата.
Back to top
View user's profile Send private message
annix



Joined: 08 May 2008
Posts: 24

Post (Separately) Posted: Sun Aug 17, 2008 13:41    Post subject: Reply with quote

Да, речь идёт именно об этих плейлистах.

Quote:
Заменять нужно текст "x:\" на "y:\" (x-старая буква диска, y-новая). Единственное, что нужно учесть, так это последовательность переименований в случае, если переименовывалось сразу несколько букв дисков., чтобы не произошло накладки, но это разруливается весьма просто (не говорю как именно, ибо не знаю как производились переименования дисков).

Сначала все фалы были на диске Е, потом был куплен новий винт и файлы были скорпированы на его логический диск D, далее я хочу переименовать его не в E, как раньше, а в Z, чтобы при подключении этого винта к любым другим компам (есть такая необходимость) логический диск был не какой придётся, в зависимости от количества логических дисков на основном винте компа, к которому подключаюсь, а всегда фиксированный, поэтому я хочу сделать Z, т.к. столько логических дисков ни у кого нет.
99% всех списков у меня сылаются на диск E, и немножко есть на D -- ситуация такая.

Quote:
А при чем тут вообще переименование файлов lap? Я-то понял проблему совсем по-другому (а не ухватился за странную, imho, идею с переименованием старых lap-файлов).

Вы проблему поняли абсолютно правильно, только я (т.к. не владею материалом) не знала, что это так легко сделать, и собиралась переименовать старые списки, чтобы они сами по себе были, но чтобы в них не тыкать а постепенно исправлять по одному. Я просто не знала, что мне так просто помочь. Только одна проблема, я совершенно в этом смысле невежественна: "скрипт" это текст, который нужно вставить куда?
Back to top
View user's profile Send private message
annix



Joined: 08 May 2008
Posts: 24

Post (Separately) Posted: Sun Aug 17, 2008 14:31    Post subject: Reply with quote

Я Вас правильно поняла, что нужно создать файл ReplaceInFiles.vbs
открыть его блокнотом и вставить в него текст кода и заменить "Введите искомую строку" на "E:" и "Введите строку для замены" на "Z:", потом найти и выделить все lap-файлы и запустить этот ReplaceInFiles.vbs?
-----------------
ой, сори, ничего заменять не надо, да?


Last edited by annix on Sun Aug 17, 2008 15:27; edited 1 time in total
Back to top
View user's profile Send private message
annix



Joined: 08 May 2008
Posts: 24

Post (Separately) Posted: Sun Aug 17, 2008 14:43    Post subject: Reply with quote

Я вставила код в этот файл полностью, выделила все нужные файлы, ткнула на этот ReplaceInFiles.vbs он сказал "Введите искомую строку" я ввела "E:", потом сказал "Введите строку для замены", я ввела "Z:", а потом произошло это:http://pixs.ru/showimage/ScreenShot_5463776_80050.jpg
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sun Aug 17, 2008 15:25    Post subject: Reply with quote

annix, предложу другой вариант решения проблемы:
мой любимый текстовый редактор EditPlus может открывать в одном окне несколько файлов (я открывал несколько десятков) и может заменять во всех открытых файлах
Back to top
View user's profile Send private message
annix



Joined: 08 May 2008
Posts: 24

Post (Separately) Posted: Sun Aug 17, 2008 15:30    Post subject: Reply with quote

Volniy
ОЙ, извините, Вы же сказали со слешем надо "E:\" и "Z:\", я попробовала со слешем, но результат тот же, только "строка: 25" а не "24"...

Tol!k
сейчас найду линк на закачку и испробую, спасибо.

------------------
скачала, установила, Tol!k, а как там все lap выцедить, как в тотал коммандере? (наверно, накак, частями придётся... а их 2,5 тыщи...)

Volniy, Вы скажите, проблема в том, что я что-то неправильно делаю, или в другом?
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sun Aug 17, 2008 16:07    Post subject: Reply with quote

annix, все lap выцедить в тотал коммандере
D1P wrote:
Alt+F7. Находишь все *.lap-файлы. Выносишь на панель. Выделяешь (Alt+Num+, чтобы выделились только файлы с нужным расширением, если нашлось что-то ещё).
Потом контекстное меню - "EditPlus";
или перетащи мышью на открытое окно EditPlus
Back to top
View user's profile Send private message
annix



Joined: 08 May 2008
Posts: 24

Post (Separately) Posted: Sun Aug 17, 2008 17:07    Post subject: Reply with quote

Если из tc открывать, то файлы открываются каждый в отдельном окошке, а не во вкладках, а ещё у каждого окошка надо тыкнуть "i agree"... 2,5 тысячи раз...
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sun Aug 17, 2008 17:14    Post subject: Reply with quote

annix, меню Document > Permanent Settings > General > сними Allow multiple instants.

меню Search > Replace > выбери All open files и жми Replace All.
Back to top
View user's profile Send private message
Kent



Joined: 14 Dec 2004
Posts: 208

Post (Separately) Posted: Sun Aug 17, 2008 18:15    Post subject: Reply with quote

Что-то вы какие-то ужасы пишете. Интересно посмотреть на состояние EditPlus с 2500 открытых файлов. Shocked
Попробуйте эту программу.

Ещё могу предложить "find ... -exec sed ..." Smile
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Sun Aug 17, 2008 18:41    Post subject: Reply with quote

2annix
Я вас прошу не паникуйте, не хватайтесь пробовать все программы, которые вам тут подсовывают. У каждого свои предпочтения и у каждого свое мнение, какой софт лучше. Но мы ведь с вами на форуме, посвященном Тоталу, посему есть смысл воспользоваться его возможностями. Согласны?

Насчет скрипта: если файлик VBS вы уже создали, теперь можно мышкой затащить его прямо на панельку инструментов (зажмите клавишу Shift при этом). Получится новая кнопочка. Кликните по ней правой кнопкой мыши и выберите команду "Изменить" из выпавшего меню. В окошке найдите поле Параметры и вставьте там "%L", дальше жмите ОК. Кнопка для замены готова к работе.

Теперь, если вам нужно произвести замену текста в каких-то текстовых файлах нужно чтобы они оказались в окне Тотала и при этом были отмечены (выделены).

Можете начинать тестирование. Для начала возьмите пару неработающих lap-файлов (а то и просто их копии) и проверьте работу скрипта на них. Итак их нужно выделить и нажать нашу кнопку. На первый запрос введите e:\, на второй z:\. Только аккуратно, никаких лишних пробелов ни в начале ни в конце. Дождитесь сообщения, что замена успешно завершена. ОК, теперь можете проверить работоспособность этих lap-файлов. Если все ОК, можете заняться остальными 2500 файлами Wink Можно сразу все, можно и частями обрабатывать, тут уж как вам угодно.
Back to top
View user's profile Send private message
annix



Joined: 08 May 2008
Posts: 24

Post (Separately) Posted: Sun Aug 17, 2008 18:52    Post subject: Reply with quote

Спасибоньки! Получилось!Volniy победил. (Но спасибо всем =)
Volniy, после переименования появляются какие-то файлы с расширением bak, после их удаления lap работают, они зачем-то нужны или можно их удалить потом?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group