Я создал много «относительного пути к файлу» (так что они работают и на моем телефоне) плейлисты в моей папке Soundtrack, но также и в другом месте, я считаю, и теперь решил переименовать мою классическую подпапку с «европейского» на " Western ".
Как я могу убедиться, что каждый из путей файла изменен с ../../Classical/European/[...] на ../../Classical/Western/[...]?
Обычно я вручную редактирую эти файлы в Gedit.
Все плей-листы и музыкальные файлы находятся в некоторой подпапке /home/gratis/Music
Это в основном тот же подход, что и предложенный Маркусом, немного отличающийся синтаксис:
shopt -s globstar
perl -pe 's|((\.\./){2}Classical)/European/|$1/Western/|' ~/Music/**/*m3u
Если это делает то, что вы хотите, запустите его снова с помощью опции -i, чтобы изменить исходный файл:
perl -i.bak -pe 's|((\.\./){2}Classical)/European/|$1/Western/|' ~/Music/**/*m3u
-i.bak заставит его редактировать файла и создать резервную копию оригинала с тем же именем и расширением .bak.
Это в основном тот же подход, что и предложенный Маркусом, немного отличающийся синтаксис:
shopt -s globstar
perl -pe 's|((\.\./){2}Classical)/European/|$1/Western/|' ~/Music/**/*m3u
Если это делает то, что вы хотите, запустите его снова с помощью опции -i, чтобы изменить исходный файл:
perl -i.bak -pe 's|((\.\./){2}Classical)/European/|$1/Western/|' ~/Music/**/*m3u
-i.bak заставит его редактировать файла и создать резервную копию оригинала с тем же именем и расширением .bak.
Это в основном тот же подход, что и предложенный Маркусом, немного отличающийся синтаксис:
shopt -s globstar
perl -pe 's|((\.\./){2}Classical)/European/|$1/Western/|' ~/Music/**/*m3u
Если это делает то, что вы хотите, запустите его снова с помощью опции -i, чтобы изменить исходный файл:
perl -i.bak -pe 's|((\.\./){2}Classical)/European/|$1/Western/|' ~/Music/**/*m3u
-i.bak заставит его редактировать файла и создать резервную копию оригинала с тем же именем и расширением .bak.
Вы можете заменить все вхождения этой строки во все файлы, используя этот однострочный perl:
perl -i -pe 's/\.\.\/\.\.\/Classical\/European\//..\/..\/Classical\/Western\//g' /home/gratis/Music/*/*.m3u
Будьте осторожны, так как эта команда заменит все вхождения ../../Classical/European/[...] на ../../Classical/Western/[...] во всех .m3u во всех подпапках /home/gratis/Music/, но не /home/gratis/Music/.
Если вы просто хотите проверить выход, удалите -i из команды. Таким образом, команда не изменяет файлы.
Вы можете заменить все вхождения этой строки во все файлы, используя этот однострочный perl:
perl -i -pe 's/\.\.\/\.\.\/Classical\/European\//..\/..\/Classical\/Western\//g' /home/gratis/Music/*/*.m3u
Будьте осторожны, так как эта команда заменит все вхождения ../../Classical/European/[...] на ../../Classical/Western/[...] во всех .m3u во всех подпапках /home/gratis/Music/, но не /home/gratis/Music/.
Если вы просто хотите проверить выход, удалите -i из команды. Таким образом, команда не изменяет файлы.
Вы можете заменить все вхождения этой строки во все файлы, используя этот однострочный perl:
perl -i -pe 's/\.\.\/\.\.\/Classical\/European\//..\/..\/Classical\/Western\//g' /home/gratis/Music/*/*.m3u
Будьте осторожны, так как эта команда заменит все вхождения ../../Classical/European/[...] на ../../Classical/Western/[...] во всех .m3u во всех подпапках /home/gratis/Music/, но не /home/gratis/Music/.
Если вы просто хотите проверить выход, удалите -i из команды. Таким образом, команда не изменяет файлы.