1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| fichierliste="./truc.m3u"
# création d'un mock
echo -n 'Dolly\Dolly-Plein_Air_Bonus\05.Un_peu_de_mer.mp3
Dolly\Dolly-Plein_Air_Bonus\06.Matins_dencre.mp3
Dolly\Dolly-Plein_Air_Bonus\07.Lhiver.mp3
Dolly\dolly - sunday afternoon\001 No One But You.mp3
Dolly\dolly - sunday afternoon\002 Angel (Version Anglaise).mp3
Dolly\dolly - sunday afternoon\003 Don'\''t Lose That Feeling.mp3
Dolly\dolly - sunday afternoon\013 RВgis.mp3
Dolly\Tous des stars\Disc 1 - 01 - Tatutia.mp3
Dolly\Tous des stars\Disc 1 - 02 - Au paradis.mp3
Dolly\Tous des stars\Disc 1 - 03 - Tous des stars.mp3
' > "$fichierliste"
# charge fichier et convertion vers zenity $choix
declare -a choix
declare -a filecontent
declare -i i=0
while IFS=: read -r line; do
((i+=1))
filecontent+=("$line")
IFS='\' read -ra musique <<< "$line"
choix+=(FALSE $i "${musique[1]}" "${musique[2]//_/ }" "${musique[0]}")
done < "$fichierliste"
response=$(zenity --list --checklist --separator=" " --width=600 --height=450 \
--title "Filtre musiques" \
--text="Sélectionner les musiques à supprimer de ${musique[0]}" \
--hide-column=2 --print-column=2 \
--column="Supprimer ?" --column="id" --column="Album" --column="Chanson" --column="Artiste" \
"${choix[@]}" \
2>/dev/null
);
[[ $? -eq 1 ]] && exit 8 # btn annuler
response=(${response})
# Filtre par no de ligne
i=0
for fichier in "${filecontent[@]}"; do
((i+=1))
if [[ $i == "${response[0]}" ]]; then
response=("${response[@]:1}")
echo "# NOT use line $i" >&2
else
echo "${fichier//\\/\/}" # remplace antislash par slash si nécessaire ?
# ici sortie écran, a rediriger vers fichier
fi
done
unset filecontent
unset choix
unset response |