Я пытаюсь удалить песни через оболочку bash для цикла, но удаляю такой файл, как этот
while read item; do rm "$item"; done < duplicates
продолжает увлекаться названием песни. Можно ли обойти это? Названия моих песен могут выглядеть так:
/home/user/Music/Master List's Music/iTunes/iTunes\ Music/John\ Mayer/Room\ for\ Squares\ \[Aware\]/07\ 83.m4a
/home/user/Music/Master List's Music/bsg\ season\ 1\ \(Case\ Conflict\ 1\)/06\ A\ Good\ Lighter.mp3
/home/user/Music/Master List's Music/Nino\ Rota/The\ Godfather\ Pt.\ 3/14\ A\ Casa\ Amiche.m4a
Как видите, для удаления элемента у меня не может быть%. () [] Или чего-либо еще, без экранирования, если это не. перед расширением файла очевидно. Есть ли способ, которым я могу избежать специальных символов, как это?
Например, я использовал sed, чтобы превратить% 20 в пробелы:
cat duplicates | sed 's/%20/\\ /g' > clean_duplicates
Вывод, который я ищу, выглядит следующим образом:
/home/user/Music/Master\ List\'s\ Music/iTunes/iTunes Music/John\ Mayer/Room\ for\ Squares\ \[Aware\]/07\ 83.m4a
/home/user/Music/Master\ List\'s\ Music/bsg\ season\ 1\ \(Case\ Conflict\ 1\)/06\ A\ Good\ Lighter.mp3
/home/user/Music/Master\ List\'s\ Music/Nino\ Rota/The Godfather\ Pt\.\ 3\/14\ A\ Casa\ Amiche.m4a