Tente algo assim:
#!/usr/bin/python
FILE = '/home/my-home/my-playlist.m3u'
DIR = '/some-target-directory'
import os.path, shutil, sys
for i, s in enumerate(open(FILE)):
s = s.rstrip()
try:
shutil.copy(s, os.path.join(DIR, '%03d-%s' % (i+1, os.path.basename(s))))
except IOError, e:
sys.stderr.write('warning: %s\n' % e)
# End of file.
Obviamente, defina FILE
e DIR
com o que você precisa. Desculpas para ir além do topo e usar o Python para isso - ajuda a não ter que escapar de todos os caracteres que os shells gostam de anexar significados especiais.
O script não falhará nos erros de E / S, apenas emitirá um aviso. Fora isso, não há verificações de sanidade (como você provavelmente pode ver). Também não exclui comentários do M3U. Entretanto, ele copia qualquer caractere que você jogue, com as exceções óbvias de NUL
s e barras que são caracteres especiais no nível do sistema de arquivos.