Я пытаюсь изменить путь во всех из m3u файлов. Я знаю, что могу сделать это с regexxer f.e., но я пытаюсь изучить удар.
Это - команда, которую я выяснил, но она не работает.
grep -lr -i -e 'M:\\' * | xargs -0 sed -i 's/M:\\/T:\\/g'
Я подозреваю, но только подозреваю, это происходит из-за специальных символов в именах файлов. Как иметь дело с этим?
Finaly я нашел ответ:
grep -lr -i -Z -e 'm:\\' * | xargs -0 sed -i 's/M:\\/K:\\/g'
Я должен был добавить-Z для заботы, что каждое имя файла читается, а не весь набор в одной длинной строке.
Это добилось цели:
изменить путь окон M:\
к точке монтирования в Ubuntu media/MODERNE MUZIEK
find -iname '*.m3u' -print0 |
xargs -0 sed -i 's/M:\\//\/media\/MODERNE\ MUZIEK\//g'
изменить наклонные черты влево на наклонные черты вправо
find -iname '*.m3u' -print0 | xargs -0 sed -i 's/\\/\//g'
Теперь я могу открыть свои экс-окна m3u файлы с плеером VLC в Ubuntu.
Это играет, неважно, сколько пробелов или странных символов находится в имени файла.
Это могло быть улучшено? мог это быть покончить grep
сделать это условным выражением как в моей первой неудавшейся попытке? Почему grep не работал?
Спасибо за вход.