logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#76 19-02-2024 15:22:55

JM38
Membre
Distrib. : LinuxMint 20.1 Ulyssa
Noyau : Linux Mint 5.4.0-66 generic Cinnamon 4.8.6
Inscription : 03-06-2020

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

Bonjour
j'ai testé sans la  progression , ça marche nickel (j'ai changé l'ordre, et concaténé avec  des lignes blanches ,étoiles  yy pour numéroter ensuite
________________________
**yy*****************
titre-Le temps des cerises_album-Chansons populaires de France_interprete-Yves Montand
________________________
**yy*****************
titre-Français_album-Français_interprete-Michel Sardou
titre-On se reverra_album-Français_interprete-Michel Sardou
titre-L'avenir c'est toujours pour demain_album-Français_interprete-Michel Sardou
titre-Corsica_album-Français_interprete-Michel Sardou
titre-Je n'aurai pas le temps_album-Français_interprete-Michel Sardou
titre-La bataille_album-Français_interprete-Michel Sardou
titre-Pense à l'Italie_album-Français_interprete-Michel Sardou
titre-Parlez-moi d'elle_album-Français_interprete-Michel Sardou
titre-L'Amérique de mes dix ans_album-Français_interprete-Michel Sardou
titre-Cette chanson-là_album-Français_interprete-Michel Sardou
titre-Petit_album-Petit / Les Ricains_interprete-Michel Sardou
titre-Un enfant_album-Danton_interprete-Michel Sardou
titre-Les Vieux Mariés_album-L'essentiel des albums studio_interprete-Michel Sardou
titre-Le surveillant général_album-Danton_interprete-Michel Sardou
titre-La Maladie D'amour_album-L'essentiel des albums studio_interprete-Michel Sardou
titre-Le Curé_album-L'essentiel des albums studio_interprete-Michel Sardou
titre-Les Villes De Solitude_album-L'essentiel des albums studio_interprete-Michel Sardou
titre-Une fille aux yeux clairs_album-En famille - EP_interprete-Michel Sardou
titre-Le France_album-Les grands moments : Best of Sardou_interprete-Michel Sardou
titre-Je Vole_album-L'essentiel des albums studio_interprete-Michel Sardou
titre-Je Vais T'aimer_album-L'essentiel des albums studio_interprete-Michel Sardou
________________________
**yy*****************
titre-Français___interprete-Michel Sardou____album-Français
titre-On se reverra___interprete-Michel Sardou____album-Français
titre-L'avenir c'est toujours pour demain___interprete-Michel Sardou____album-Français
titre-Corsica___interprete-Michel Sardou____album-Français
titre-Je n'aurai pas le temps___interprete-Michel Sardou____album-Français
titre-La bataille___interprete-Michel Sardou____album-Français
titre-Pense à l'Italie___interprete-Michel Sardou____album-Français
titre-Parlez-moi d'elle___interprete-Michel Sardou____album-Français
titre-L'Amérique de mes dix ans___interprete-Michel Sardou____album-Français
titre-Cette chanson-là___interprete-Michel Sardou____album-Français
titre-Petit___interprete-Michel Sardou____album-Petit / Les Ricains
titre-Un enfant___interprete-Michel Sardou____album-Danton
titre-Les Vieux Mariés___interprete-Michel Sardou____album-L'essentiel des albums studio
titre-Le surveillant général___interprete-Michel Sardou____album-Danton
titre-La Maladie D'amour___interprete-Michel Sardou____album-L'essentiel des albums studio
titre-Le Curé___interprete-Michel Sardou____album-L'essentiel des albums studio
titre-Les Villes De Solitude___interprete-Michel Sardou____album-L'essentiel des albums studio
titre-Une fille aux yeux clairs___interprete-Michel Sardou____album-En famille - EP
titre-Le France___interprete-Michel Sardou____album-Les grands moments : Best of Sardou
titre-Je Vole___interprete-Michel Sardou____album-L'essentiel des albums studio
titre-Je Vais T'aimer___interprete-Michel Sardou____album-L'essentiel des albums studio

en revanche la progression n'est pas  bonne
max_fichier=$(ls /run/user/1000/gvfs/cdda:host=sr0/|wc -l)    logiquement c'est le nombre de chansons? que signifie le   wc -l? quel nombre represente t'il?

liste_fichier=$(cat "$HOME"/liste"$list".txt|wc -l)         que signifie le   wc -l? (bis repetita)  liste_fichier  doit contenir le rang de la  chanson lue ?

restant=$(($max_fichier-$liste_fichier))     restant est erroné ,y a t'il un nombre inconnu à 0 (liste_fichier ou max_fichier?)

notify-send "restant à traiter" "<span font='27'>$restant</span>" --icon=~/.cargo/songrec.svg

il est affiché le rang de  la chanson  traitée  et non pas ce qu'il  reste à traiter ,le nombre évolue à  l'affichage,1,2,3,  jusqu'à 21 pour mon cd  de 21 titres
et la balise span n'est  pas reconnue et donc non interprétée mais affichée en dur
il s'affiche : restant à traiter" "<span font='27'> 5 /span>"
restant à traiter" "<span font='27'> 6 /span>"
jusqu'à
restant à traiter" "<span font='271'> 21 /span>"
A suivre
On (TU) vas y arriver
la France te regarde !!

Hors ligne

#77 19-02-2024 16:17:44

mister_g
Membre
Distrib. : debian sid
Noyau : Linux 6.11.7-amd64
(G)UI : fluxbox
Inscription : 20-07-2022

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

wc -l t'affiche le nombre de ligne de ce qui se trouve à gauche du pipe

Hors ligne

#78 19-02-2024 16:49:24

JM38
Membre
Distrib. : LinuxMint 20.1 Ulyssa
Noyau : Linux Mint 5.4.0-66 generic Cinnamon 4.8.6
Inscription : 03-06-2020

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

Merci
Ce qui signifie que max_fichier doit être faux ,à zéro peut-être
Car liste_fichier progresse bien puisque le fichier grossit un par un
On apprend ici !!
A suivre !!
Nb la progression permet de découvrir les arcanes du Shell
Et c est super
Mais il peut augmenter le temps de traitement et l essentiel est de savoir quand le traitement est fini avec le message sonore

Hors ligne

#79 19-02-2024 17:26:15

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

oui je me doutais que cela allait arriver
c'est a cause de ton chemin a rallonge , que j'ai pas repris
tu as changé le chemin de la liste mais pas la  variable liste_fichier qui compte le nombre de ligne présent dans ta liste, et a chaque fois que la boucle relis la variable elle est recalculé

Donc voila j'ai mis une variable que tu peux modifier (chemin_liste), toute les variables qui s'appuie sur ce chemin seront modifié en conséquence
pour le temps d'affichage, chez moi la notification reste un peu trop longtemps , mais je crois bien que j'avais allongé  le temps par défaut
a voir chez toi , si le temps est trop long il faudra ajouter l'option -t à notifify-send avec un temps plus court

pour la progression l'idée est simple connaître le nombre de ligne du contenu du cd
connaître le nombre de ligne de ta liste, a chaque fois qu'un fichier viens d’être traité
soustraire les deux
donc on voit le décompte qui va bien





#!/bin/bash
#reconnaissance audio d'un cd exotique, fichier non taggués
###attention suppose que le cd est en montage automatique a l'insertion
# sinon ajouter une ligne du type vlc cdda:///dev/sr0

########variable modifiable########
chemin_liste='/home/jojo/JM/analyse/bat/'
##############################

max_fichier=$(ls /run/user/1000/gvfs/cdda:host=sr0/|wc -l)
notify-send "Songrec" "début du processus de reconnaissance" --icon=~/.cargo/songrec.svg

list=$(date +%d-%m-%y_%H:%M:%S)
cd /run/user/1000/gvfs/cdda:host=sr0/
while read -r line  
do songrec audio-file-to-recognized-song "$line"|tee /tmp/songrec.json

album=$(grep -B1 Album /tmp/songrec.json|awk '/"text"/ {sub(/",.*/, ""); print substr($0,22)}')
interprete=$(awk '/"subtitle"/ {sub(/",.*/, ""); print substr($0,18)}' /tmp/songrec.json)
titre=$(awk '/"title".*",/ {sub(/",.*/, ""); print substr($0,15)}' /tmp/songrec.json)

echo "titre-"$titre"_album-"$album"_interprete-"$interprete""|tee -a "$chemin_liste""$list".txt

#pour afficher la progression
liste_fichier=$(cat "$chemin_liste""$list".txt|wc -l)
restant=$(($max_fichier-$liste_fichier))
notify-send "restant à traiter" "<span font='27'>$restant</span>" --icon=~/.cargo/songrec.svg

done <<<$(ls -UN1 /run/user/1000/gvfs/cdda:host=sr0/|grep .wav)

paplay /home/jojo/JM/Linux/SONS/tada.wav
notify-send --urgency=critical "Songrec" "Fin" --icon=~/.cargo/songrec.svg
eject
 



je viens de le faire tourné , ça fonctionne au poil cool

Dernière modification par Croutons (19-02-2024 17:37:22)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#80 19-02-2024 20:58:34

JM38
Membre
Distrib. : LinuxMint 20.1 Ulyssa
Noyau : Linux Mint 5.4.0-66 generic Cinnamon 4.8.6
Inscription : 03-06-2020

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

bonsoir
j'avais compris

pour la progression l'idée est simple connaître le nombre de ligne du contenu du cd
connaître le nombre de ligne de ta liste, a chaque fois qu'un fichier viens d’être traité
soustraire les deux
donc on voit le décompte qui va bien


pour le nombre mal affiché c'est de ma  faute j'avais oublié la ligne qui déclarait la  variable max_fichier
max_fichier=$(ls /run/user/1000/gvfs/cdda:host=sr0/|wc -l)

en revanche le message affiche  :
restant à traiter
<span font='27'> 8 </span>  quand il  reste 8 enregistrements
<span font='27'> 7 </span>  quand il  reste 7 enregistrements
jusqu'à
<span font='27'> 0 </span>  quand il  reste 0 enregistrements

voici mon script
#!/bin/bash
#reconnaissance audio d'un cd exotique, fichier non taggués
max_fichier=$(ls /run/user/1000/gvfs/cdda:host=sr0/|wc -l)
notify-send "Songrec" "début du processus de reconnaissance" --icon=~/.cargo/songrec.svg

list=$(date +%d-%m-%y_%H:%M:%S)
cd /run/user/1000/gvfs/cdda:host=sr0/
while read -r line 
do songrec audio-file-to-recognized-song "$line"|tee /tmp/songrec.json

album=$(grep -B1 Album /tmp/songrec.json|awk '/"text"/ {sub(/",.*/, ""); print substr($0,22)}')
interprete=$(awk '/"subtitle"/ {sub(/",.*/, ""); print substr($0,18)}' /tmp/songrec.json)
titre=$(awk '/"title".*",/ {sub(/",.*/, ""); print substr($0,15)}' /tmp/songrec.json)

echo "titre-"$titre"___interprete-"$interprete"""____album-"$album|tee -a /home/jojo/JM/Chansons_CD/Sardou"$list".txt
liste_fichier=$(cat /home/jojo/JM/Chansons_CD/Sardou"$list".txt|wc -l)
restant=$(($max_fichier-$liste_fichier))
notify-send "restant à traiter" "<span font='27'>$restant</span>" --icon=~/.cargo/songrec.svg

done <<<$(ls -UN1 /run/user/1000/gvfs/cdda:host=sr0/|grep .wav)

paplay /home/jojo/JM/Linux/SONS/tada.wav
paplay /home/jojo/JM/Linux/SONS/dangers.ogg
notify-send --urgency=critical "Songrec" "Fin" --icon=~/.cargo/songrec.svg
notify-send --urgency=critical "Songrec" "Opération terminée\nfichier créé:\n/home/jojo/JM/Chansons_CD/Sardou"$list".txt"
eject

Hors ligne

#81 19-02-2024 21:15:40

JM38
Membre
Distrib. : LinuxMint 20.1 Ulyssa
Noyau : Linux Mint 5.4.0-66 generic Cinnamon 4.8.6
Inscription : 03-06-2020

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

notify-send "restant à traiter" "<span font='27'>$restant</span>" --icon=~/.cargo/songrec.svg

surement un problème de cotes  "  <span est considéré comme du texte
je vais essayer
notify-send "restant à traiter"  <span font='27'></span>$restant  --icon=~/.cargo/songrec.svg
ou simplement
notify-send "restant à traiter "  $restant  --icon=~/.cargo/songrec.svg

Hors ligne

#82 19-02-2024 22:19:48

JM38
Membre
Distrib. : LinuxMint 20.1 Ulyssa
Noyau : Linux Mint 5.4.0-66 generic Cinnamon 4.8.6
Inscription : 03-06-2020

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

bonsoir
voici mon script final
#!/bin/bash
#reconnaissance audio d'un cd exotique, fichier non taggués
max_fichier=$(ls /run/user/1000/gvfs/cdda:host=sr0/|wc -l)
notify-send "Songrec" "début du processus de reconnaissance" --icon=~/.cargo/songrec.svg

list=$(date +%d-%m-%y_%H:%M:%S)
cd /run/user/1000/gvfs/cdda:host=sr0/
while read -r line 
do songrec audio-file-to-recognized-song "$line"|tee /tmp/songrec.json

album=$(grep -B1 Album /tmp/songrec.json|awk '/"text"/ {sub(/",.*/, ""); print substr($0,22)}')
interprete=$(awk '/"subtitle"/ {sub(/",.*/, ""); print substr($0,18)}' /tmp/songrec.json)
titre=$(awk '/"title".*",/ {sub(/",.*/, ""); print substr($0,15)}' /tmp/songrec.json)

echo "titre-"$titre"___interprete-"$interprete"""____album-"$album|tee -a /home/jojo/JM/Chansons_CD/Sardou"$list".txt
liste_fichier=$(cat /home/jojo/JM/Chansons_CD/Sardou"$list".txt|wc -l)
restant=$(($max_fichier-$liste_fichier))
notify-send "restant à traiter  "$restant " sur "$max_fichier --icon=~/.cargo/songrec.svg

done <<<$(ls -UN1 /run/user/1000/gvfs/cdda:host=sr0/|grep .wav)

paplay /home/jojo/JM/Linux/SONS/tada.wav
paplay /home/jojo/JM/Linux/SONS/dangers.ogg
notify-send --urgency=critical "Songrec" "Fin" --icon=~/.cargo/songrec.svg
notify-send --urgency=critical "Songrec" "Opération terminée\nfichier créé:\n/home/jojo/JM/Chansons_CD/Sardou"$list".txt"
eject

Hors ligne

#83 20-02-2024 08:59:44

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

tu pourrais virer les secondes du nom de la liste ,l'opération de reconnaissance ne pouvant être réalisé en moins d'une minute

list=$(date +%d-%m-%y_%H:%M:%S)

deviendrait

list=$(date +%d-%m-%y_%H:%M)


étrange cette histoire avec span , chez moi cela fonctionne, sûrement que ton système de notification ne comprend pas la syntaxe pango markup
chaque environnement de bureau a son propre système


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#84 20-02-2024 09:42:06

JM38
Membre
Distrib. : LinuxMint 20.1 Ulyssa
Noyau : Linux Mint 5.4.0-66 generic Cinnamon 4.8.6
Inscription : 03-06-2020

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

Bonjour Croutons
oui tu as raison pour les secondes
oui pour le span,c'est curieux
j'ai réalisé ma liste récap avec ce script

#!/bin/bash
list=$(date +%d-%m-%y_%H:%M:%S)
cd /home/jojo/JM/Chansons_CD
notify-send "Debut concaténation Sardou__" $list
sed -i 1i\**yy***************** Sardou*.txt
sed -i 1i\________________________ Sardou*.txt
cat Sardou*.txt>liste_recap_Sardou.txt
paplay /home/jojo/JM/Linux/SONS/tada.wav
notify-send --urgency=critical "Opération terminée\nfichier créé:\n/home/jojo/JM/Chansons_CD/liste_recap_Sardou.txt"

ça a marché nickel et en plus, il les a mis dans l'ordre de création (il a concaténé par date de création croissante , en premier celui qui a été créé en premier,et en dernier celui créé en dernier, il l'a peut-etre fait avec nom croissant , ce qui revient au même dans notre exemple , car ça été créé le même jour 19 février, mais ko si jour différent ,je mettais toujours les dates Année mois jour pour pouvoir trier)

y a  t'il dans la commande grep une option pour banaliser l'accent, comme pour la casse (-i)
grep -r -i "véteran"   marcherait pour vétéran 
merci infiniment pour ton aide, c'est génial
je suis un vieil informaticien de plus de 42 ans de pratique (dos,windows,basic,cobol, assembleur, mantis, vb..) et linux est d'une richesse !!!! je ne veux pas convertir un convaincu !!!
je vais continuer de me constituer une petite doc
nb
c'est curieux songrec sur 2 CD que j'ai gravé de 2 façons, une avec une copie de CD,une autre avec cdex (sous windows), il y a une chanson qui n'est pas reconnue
pour l'un c'est ok, pour l'autre non
et une chanson   titre-Two友 (カラオケ)___interprete-カラオケ歌っちゃ王____album

Mais je lui pardonne ce  bogue !!
**yy*****************
titre-On est planté___interprete-Michel Sardou____album-Hors Format
titre-L'évangile (selon Robert) [Apocryphe]___interprete-Michel Sardou____album-Hors Format
titre-Valentine Day___interprete-Michel Sardou____album-Hors Format
titre-Ce qui s'offre___interprete-Michel Sardou____album-Hors Format
titre-Two友 (カラオケ)___interprete-カラオケ歌っちゃ王____album-
titre-l'oiseau tonnerre___interprete-Michel Sardou____album-Hors Format
titre-40 ans___interprete-Michel Sardou____album-Hors Format
titre-Le chant des hommes___interprete-Michel Sardou & Chimène Badi____album-Le Miroir
titre-Un motel à Keeseeme___interprete-Michel Sardou____album-Hors Format
titre-Je serai là___interprete-Michel Sardou____album-Hors Format
titre-Je ne sais plus rien___interprete-Michel Sardou____album-Hors Format
titre-Cette chanson n'en est pas une___interprete-Michel Sardou____album-Hors Format
________________________
**yy*****************
titre-Le figurant___interprete-Michel Sardou____album-Le choix du fou
titre-San Lorenzo___interprete-Michel Sardou____album-Le choix du fou
titre-Toccata and Fugue in F major, BWV 540___interprete-Alessio Corti____album-
titre-La colline de la soif___interprete-Michel Sardou____album-Le choix du fou
titre-Qui m'aime me tue___interprete-Michel Sardou____album-Le choix du fou
titre-J'aimerais savoir___interprete-Michel Sardou____album-Le choix du fou
titre-Je t'aime___interprete-Michel Sardou____album-Le choix du fou
titre-Pour moi elle a toujours 20 ans___interprete-Michel Sardou____album-Le choix du fou
titre-Médecin de campagne___interprete-Michel Sardou____album-Le choix du fou
titre-Le choix du fou___interprete-Michel Sardou____album-Le choix du fou
________________________
**yy*****************
titre-Le figurant___interprete-Michel Sardou____album-Le choix du fou
titre-San Lorenzo___interprete-Michel Sardou____album-Le choix du fou
titre-Et alors !___interprete-Michel Sardou____album-Le choix du fou
titre-La colline de la soif___interprete-Michel Sardou____album-Le choix du fou
titre-Qui m'aime me tue___interprete-Michel Sardou____album-Le choix du fou
titre-J'aimerais savoir___interprete-Michel Sardou____album-Le choix du fou
titre-Je t'aime___interprete-Michel Sardou____album-Le choix du fou
titre-Pour moi elle a toujours 20 ans___interprete-Michel Sardou____album-Le choix du fou
titre-Médecin de campagne___interprete-Michel Sardou____album-Le choix du fou
titre-Le choix du fou___interprete-Michel Sardou____album-Le choix du fou

Je ne vais pas tarder à clore la discussion
Merci encore
JM

Hors ligne

#85 20-02-2024 10:25:36

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

JM38 a écrit :

y a  t'il dans la commande grep une option pour banaliser l'accent, comme pour la casse (-i)
grep -r -i "véteran"   marcherait pour vétéran



à première vu rien ne le dit dans le man, j'ai trouvé sur plusieurs site qu'il fallait entourer le caractère recherché comme ceci

grep -ri "v[[=e=]]t[[=e=]]ran"


faut dire que cela fonctionne
https://stackoverflow.com/questions/209 … itive-grep

pour le script j'aurais du faire quelque chose comme ça

#!/bin/bash
max_fichier=$(ls /run/user/1000/gvfs/cdda:host=sr0/|wc -l)
for index in $(seq 1 "$max_fichier"); do
      echo Track "$index".wav
#   (…)
done
 


voir le poste la https://debian-facile.org/viewtopic.php?id=34577
je le réécrirais sûrement a l'occasion

JM38 a écrit :

je suis un vieil informaticien de plus de 42 ans de pratique (dos,windows,basic,cobol, assembleur, mantis, vb..) et linux est d'une richesse !!!! je ne veux pas convertir un convaincu !!!
je vais continuer de me constituer une petite doc


pas de formation informaticien pour moi , je ne suis qu'un passionné curieux smile
j'en apprend chaque jour, mais je fonctionne surtout avec mes notes, j'ai plus ma mémoire de mes 20 ans


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#86 20-02-2024 14:21:06

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

JM38 a écrit :

y a  t'il dans la commande grep une option pour banaliser l'accent, comme pour la casse (-i)
grep -r -i "véteran"   marcherait pour vétéran



à première vu rien ne le dit dans le man, j'ai trouvé sur plusieurs site qu'il fallait entourer le caractère recherché comme ceci

grep -ri "v[[=e=]]t[[=e=]]ran"


faut dire que cela fonctionne
https://stackoverflow.com/questions/209 … itive-grep

pour le script j'aurais du faire quelque chose comme ça

#!/bin/bash
max_fichier=$(ls /run/user/1000/gvfs/cdda:host=sr0/|wc -l)
for index in $(seq 1 "$max_fichier"); do
      echo Track "$index".wav
#   (…)
done
 


voir le poste la https://debian-facile.org/viewtopic.php?id=34577
je le réécrirais sûrement a l'occasion

JM38 a écrit :

je suis un vieil informaticien de plus de 42 ans de pratique (dos,windows,basic,cobol, assembleur, mantis, vb..) et linux est d'une richesse !!!! je ne veux pas convertir un convaincu !!!
je vais continuer de me constituer une petite doc


pas de formation informaticien pour moi , je ne suis qu'un passionné curieux smile
j'en apprend chaque jour, mais je fonctionne surtout avec mes notes, j'ai plus ma mémoire de mes 20 ans

edit: remarque bien il y a pas mal de variante de grep
je viens de voir que j'avais installé ugrep, pas trouvé d'option
mais on peux par exemple spécifier le nombre de caractéres qui peuvent ne pas matcher dans la recherche

ugrep --fuzzy=2 "veteran" --pager


l'option interactif -Q est pas mal foutu

Dernière modification par Croutons (20-02-2024 15:56:20)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#87 20-02-2024 15:10:17

JM38
Membre
Distrib. : LinuxMint 20.1 Ulyssa
Noyau : Linux Mint 5.4.0-66 generic Cinnamon 4.8.6
Inscription : 03-06-2020

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

re

grep -ri "v[[=e=]]t[[=e=]]ran"


ça marche !!!

#!/bin/bash
max_fichier=$(ls /run/user/1000/gvfs/cdda:host=sr0/|wc -l)
for index in $(seq 1 "$max_fichier"); do
      echo Track "$index".wav
#   (…)
done


pourquoi veux tu faire cela ?
j'ai  executé avec notify-send  à  la place d'echo , car l'echo n'affiche pas à l'écran
je n'ai pas ugrep
A suivre
JM

Hors ligne

#88 20-02-2024 15:14:27

JM38
Membre
Distrib. : LinuxMint 20.1 Ulyssa
Noyau : Linux Mint 5.4.0-66 generic Cinnamon 4.8.6
Inscription : 03-06-2020

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

pour mes erreurs de cd,c'est curieux rhythmox reconnait le cd avec  l'erreur
titre-Toccata and Fugue in F major, BWV 540___interprete-Alessio Corti____album- 
il trouve bien :
titre-Et alors !___interprete-Michel Sardou____album-Le choix du fou
alors que rhytmbox ne trouve aucun titre sur le cd entièrement reconnu par songrec

quand au titre exotique
titre-Two友 (カラオケ)___interprete-カラオケ歌っちゃ王____album-
le cd est bon sur un lecteur cd, autre que celui de ma becane

Hors ligne

#89 21-02-2024 10:11:00

JM38
Membre
Distrib. : LinuxMint 20.1 Ulyssa
Noyau : Linux Mint 5.4.0-66 generic Cinnamon 4.8.6
Inscription : 03-06-2020

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

Bonjour Crouton
pour ma doc, quel script pour
lecture d'un fichier .txt
analyser chaque enregistrement de cette façon
si de la position 5 à la position 10 ,il y a le mot "BONJOUR"  alors on écrit dans un fichier txt en append
l'enregistrement de rang X a le mot BONJOUR
si sur tout l'enregistrement ,il y a la chaîne "AU revoir"  alors on écrit dans un fichier txt en append
l'enregistrement de rang X contient  la chaîne  "AU revoir"  en position Y

pour toi qui maîtrise les boucles et les recherches de caractères, ça doit être un jeu d'enfants (bravo pour ton expertise, pour un non informaticien, il n'est pas aisé de maîtriser  le langage pour les non initiés )
je comprends que cette question n'a pas sa place dans cette discussion, que je vais clore incessamment sous peu ,et peut-etre même avant
Merci infiniment en tous cas
JM

Hors ligne

#90 21-02-2024 11:10:16

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

la tu me pose une colle
avec grep on aurait les numéro des lignes ou d'octet à la rigueur mais j'ai rien trouvé de simple pour connaître la position
j'ai des exemples avec la commande expr pour recherché dans une chaîne de caractère
il faut poser ce genre de question dans la catégorie débuté avec la ligne de commande
y'a des barbus qui maîtrise des choses que j'ai encore du mal a savoir
y'a tellement de commandes
si tu t'amuse avec chaque lettre de ton clavier puis appui sur la touche tab pour l'autocomplétion , tu verras la difficulté de connaître toute les commandes

rien que avec a j'ai 128 possibilité,pas toujours des commandes du shell , certaine de paquet installé, mais c'est pour dire

 $ a
Display all 128 possibilities? (y or n)
aa-enabled                    add-shell                     amixer                        apt-cdrom                     arepack                       atd                           autoscan
aa-exec                       adduser                       amuFormat.sh                  apt-config                    arkanoid                      atmel_fwl                     autoupdate
aa-features-abi               adiff                         anacron                       apt-extracttemplates          arp                           atobm                         avahi-browse
aa-remove-unknown             aegisub-3.2                   animate                       apt-file                      arpd                          atool                         avahi-browse-domains
aa-status                     agetty                        animate-im6                   apt-ftparchive                arptables                     atq                           avahi-daemon
aa-teardown                   airscan-discover              animate-im6.q16               apt-get                       arptables-nft                 atrm                          avahi-publish
abcde                         alias                         aoe                           aptitude                      arptables-nft-restore         attr                          avahi-publish-address
abcde-musicbrainz-tool        align_image_stack             aoe_fenetre                   aptitude-changelog-parser     arptables-nft-save            audacity                      avahi-publish-service
acat                          als                           apack                         aptitude-create-state-bundle  arptables-restore             audio_rename                  avahi-resolve
accessdb                      alsabat                       aplay                         aptitude-curses               arptables-save                aunpack                       avahi-resolve-address
aclocal                       alsabat-test                  aplaymidi                     aptitude-run-state-bundle     as                            autoconf                      avahi-resolve-host-name
aclocal-1.16                  alsactl                       apparmor_parser               apt-key                       as10k1                        auto-exclude                  avahi-set-host-name
aconnect                      alsa-info                     apparmor_status               apt-mark                      aseqdump                      autoheader                    awk
acpi                          alsaloop                      applygnupgdefaults            apt-sortpkgs                  aseqnet                       autom4te                      axfer
acyclic                       alsamixer                     appres                        ar                            aspell                        automake                      
addgnupghome                  alsatplg                      appstreamcli                  arandr                        aspell-autobuildhash          automake-1.16                
addgroup                      alsaucm                       apropos                       arch                          aspell-import                 autooptimiser                
addpart                       ambiguous_words               apt                           arecord                       asunder                       autopoint                    
addr2line                     amidi                         apt-cache                     arecordmidi                   at                            autoreconf      
 



edit: pour le script

echo "titre-"$titre"___interprete-"$interprete"""____album-"$album|tee -a /home/jojo/JM/Chansons_CD/Sardou"$list".txt
liste_fichier=$(cat /home/jojo/JM/Chansons_CD/Sardou"$list".txt|wc -l)
restant=$(($max_fichier-$liste_fichier))
notify-send "restant à traiter  "$restant " sur "$max_fichier --icon=~/.cargo/songrec.svg



pour rester cohérant avec le sur,il ne faudrait pas faire de décompte
il vaudrait mieux ne pas faire la soustraction
la ligne serait

notify-send "restant à traiter  "$liste_fichier " sur "$max_fichier --icon=~/.cargo/songrec.svg
 


1 sur 20, 2 sur 20... 20 sur 20, tada, éjection, fini

Dernière modification par Croutons (21-02-2024 11:23:53)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#91 21-02-2024 11:49:09

JM38
Membre
Distrib. : LinuxMint 20.1 Ulyssa
Noyau : Linux Mint 5.4.0-66 generic Cinnamon 4.8.6
Inscription : 03-06-2020

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

rebonjour
notify-send "restant à traiter  "$liste_fichier " sur "$max_fichier --icon=~/.cargo/songrec.svg

plutôt écrire:
notify-send "On traite le :  "$liste_fichier " sur "$max_fichier --icon=~/.cargo/songrec.svg

avec grep on aurait les numéro des lignes ou d'octet à la rigueur mais j'ai rien trouvé de simple pour connaître la position
j'ai des exemples avec la commande expr pour recherché dans une chaîne de caractère


si tu peux  me donner déjà ça, et surtout la structure de la boucle de lecture du fichier toto.txt  avec les tests à l'intérieur ,ça serait super !!
je chercherai pour le reste, ou poserai le problème  dans la catégorie" débuter avec la ligne de commande"

si tu t'amuse avec chaque lettre de ton clavier puis appui sur la touche tab pour l'autocomplétion


j'ai  essayé
ça n'affiche rien !!a tab a tab en MAJ non plus  (naturellement j'ai fait ctrl C voyant que rien ne se passait
jojo@jojo-Aspire-7720Z:~$ a^C
jojo@jojo-Aspire-7720Z:~$

Bon appétit
merci en tout cas
JM

Dernière modification par JM38 (21-02-2024 11:59:32)

Hors ligne

#92 21-02-2024 13:44:06

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

oula tu dois beaucoup t'embeter a taper les commandes alors , c'est peut être que l'autocompletion n'est pas présente sur ton système
je pourrais plus m'en passer , cela évite les fautes et ça complète les commandes , même les chemins sur le disque
admettons que tu veilles te rendre dans le répertoire Musique
tu tape cd ~/M puis tab et cela te complete ta ligne si il y a plusieurs option ça te demande si tu veux les lister
tout est la https://debian-facile.org/doc:programma … completion

si tu peux  me donner déjà ça, et surtout la structure de la boucle de lecture du fichier toto.txt  avec les tests à l'intérieur ,ça serait super !!
je chercherai pour le reste, ou poserai le problème  dans la catégorie" débuter avec la ligne de commande"


je te dis ça , des que je suis sur ma Debian, j'ai vu une piste sur le net avec la commande expr option index, couplé avec grep , je pense que ça doit le faire

mais on est loin du sujet du départ , oui il faudrait mieux ouvrir un autre poste

Dernière modification par Croutons (21-02-2024 14:25:45)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#93 21-02-2024 18:27:18

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

bon j'ai relu le man de grep et si on combine les options
affichage de la ligne -n
only matching -o
-i pour quelque soit la casse
et -b pour la position du caractére depui le début du fichier et non pas par ligne
sans l'option -o je n'ai pas le résultat attendu
sur un fichier teste

cat grep_test.txt


   BONJOUR
bonjour
                   bonjour
AUrevoir
                               AUrevoir
bkhggyugygygBonjourjkklompmpmpbonjour



grep -bion bonjour grep_test


1:3:BONJOUR
2:11:bonjour
3:38:bonjour
6:107:Bonjour
6:125:bonjour



bien sur on peut effectuer la recherche sur un répertoire (option -R)et sous répertoire et on aura en + le nom et chemin du fichier

grep -bionR bonjour $HOME


/home/stephane/grep_test:1:3:BONJOUR
/home/stephane/grep_test:2:11:bonjour
/home/stephane/grep_test:3:38:bonjour
/home/stephane/grep_test:6:107:Bonjour
/home/stephane/grep_test:6:125:bonjour
/home/stephane/.aegisub/autosave/Aus der Spur - S01E03 - Folge 3.fra.ass.2023-02-11-12-09-57.AUTOSAVE.ass:58:4366:Bonjour
/home/stephane/.aegisub/autosave/Aus der Spur - S01E03 - Folge 3.fra.ass.2023-02-11-12-09-57.AUTOSAVE.ass:161:14798:Bonjour
/home/stephane/.aegisub/autosave/Aus der Spur - S01E03 - Folge 3.fra.ass.2023-02-11-12-09-57.AUTOSAVE.ass:166:15242:Bonjour
/home/stephane/.aegisub/autosave/Aus der Spur - S01E03 - Folge 3.fra.ass.2023-02-11-12-09-57.AUTOSAVE.ass:170:15616:Bonjour
/home/stephane/.aegisub/autosave/Aus der Spur - S01E03 - Folge 3.fra.ass.2023-02-11-12-09-57.AUTOSAVE.ass:181:16729:Bonjour
/home/stephane/.aegisub/autosave/Aus der Spur - S01E03 - Folge 3.fra.ass.2023-02-11-12-09-57.AUTOSAVE.ass:251:23606:Bonjour
 


c'est juste un extrait , c'est dingue le nombre de fichier qui contiennent bonjour

Dernière modification par Croutons (21-02-2024 18:27:41)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#94 21-02-2024 18:33:07

JM38
Membre
Distrib. : LinuxMint 20.1 Ulyssa
Noyau : Linux Mint 5.4.0-66 generic Cinnamon 4.8.6
Inscription : 03-06-2020

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

je suis en train de me creer un script
x=$(cat /home/jojo/JM/Chansons_CD/A.txt |wc -l)
notify-send  " Nombre enregistrements :"$x

Hors ligne

#95 21-02-2024 18:44:04

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

ah oui mais attention , a comment est formé ta liste , car par exemple sur la liste récapitulative il y a des lignes en +
un paquet sympa , quand on a déjà lu le man , mais que on se souviens plus
tldr des fois çà aide

tldr wc


 - Compte les lignes d'un fichier :
   wc --lines chemin/vers/fichier

 - Compte les mots d'un fichier :
   wc --words chemin/vers/fichier

 - Compte les octets d'un fichier :
   wc --bytes chemin/vers/fichier

 - Compte les caractères d'un fichier (en prenant en compte l'ensemble des caractères multi-octets) :
   wc --chars chemin/vers/fichier

 - Compte les lignes, les mots et les caractères depuis l'entrée standard stdin :
   find . | wc

 - Compte la longueur en nombre de caractères de la plus grande ligne d'un fichier :
   wc --max-line-length chemin/vers/fichier
 


une fois le paquet tldr installé il faut bien souvent mettre a jour le cache

tldr -u


toute les commandes , ne sont pas présente, et parfois en anglais
parfois la syntaxe n'est pas clair
mais au final c'est un bon aide mémoire

tldr grep


- Recherche une chaîne de caractères précise :
   grep chaîne_recherchée chemin/vers/fichier

 - Recherche en ignorant la casse :
   grep -i chaîne_recherchée chemin/vers/fichier

 - Recherche récursivement (en ignorant les fichiers non-texte) dans le dossier courant une chaîne de caractères précise :
   grep -RI chaîne_recherchée .

 - Utilise des expressions régulières étendues (supporte ?, +, {}, () et |) :
   grep -E expression_régulière chemin/vers/fichier

 - Affiche 3 lignes de [C]ontexte, avant ([B]efore), ou [A]près chaque concordance :
   grep -C|B|A 3 chaîne_recherchée chemin/vers/fichier

 - Affiche le nom du fichier avec la ligne correspondante pour chaque concordance :
   grep -Hn chaîne_recherchée chemin/vers/fichier

 - Utilise l'entrée standard au lieu d'un fichier :
   cat chemin/vers/fichier | grep chaîne_recherchée

 - Inverse le résultat pour exclure des chaînes de caractères spécifiques :
   grep -v chaîne_recherchée
 


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#96 21-02-2024 18:47:32

JM38
Membre
Distrib. : LinuxMint 20.1 Ulyssa
Noyau : Linux Mint 5.4.0-66 generic Cinnamon 4.8.6
Inscription : 03-06-2020

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

j'ai compris ton grep -bion
le premier chiffre est le rang de  l'enregistrement,où est trouvée la chaine bonjour  et le 2ième est la position du premier caractère trouvé, (à partir du début du fichier)
mon fichier A.txt
12345bonjour
123456bonjour
1234567bonjourbonjourbonjour
bonjour

jojo@jojo-Aspire-7720Z:~/JM/analyse/bat$ grep -bion bonjour /home/jojo/JM/Chansons_CD/A.txt
1:5:bonjour
2:19:bonjour
3:34:bonjour
3:41:bonjour
3:48:bonjour
4:56:bonjour
jojo@jojo-Aspire-7720Z:~/JM/analyse/bat$

Hors ligne

#97 21-02-2024 18:54:16

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

ta vu le comptage commence à 0 puisque ça te dis que le premier b rencontré est en 5 alors que c'est le 6ème caractère

man grep a écrit :

-b, --byte-offset
Afficher l'emplacement dans le fichier (qui commence à l'octet 0) devant chaque ligne de sortie. Si -o (--only-matching) est spécifiée, afficher l'emplacement de la partie qui correspond.

Dernière modification par Croutons (21-02-2024 18:55:39)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#98 21-02-2024 19:00:30

JM38
Membre
Distrib. : LinuxMint 20.1 Ulyssa
Noyau : Linux Mint 5.4.0-66 generic Cinnamon 4.8.6
Inscription : 03-06-2020

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

c'est super sympa ce tdlr !!
pour en revenir à ma boucle de lecture de fichier comment on fait
il doit bien y avoir  un
while read -r nom_fichier.txt  line 
instructions
done

Hors ligne

#99 21-02-2024 19:08:45

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

oui y'a çà pour lire le fichier ligne par ligne et lui appliquer des commandes
que veux tu faire?

dans un script

while read -r line  
do  
  echo $line
   commande  
done < fichier



ou juste sur une ligne

while read line; do echo -e "$line"; done < file.txt
 



edit: sinon pour mes scripts j'utilise geany , plus pratique que le terminal
il a d'ailleurs un terminal intégré pour passer les commande en cas de besoin
et une parti note
tu peux ouvrir plusieurs projet sous différent onglet
exécuter ton script sous geany
on peut quitter l'application a tout moment en laissant les onglets ouvert, puis tout reprendre le lendemain

Dernière modification par Croutons (21-02-2024 19:15:48)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#100 21-02-2024 20:42:10

JM38
Membre
Distrib. : LinuxMint 20.1 Ulyssa
Noyau : Linux Mint 5.4.0-66 generic Cinnamon 4.8.6
Inscription : 03-06-2020

Re : Résolu Merci Extraire les titres des chansons d'un CD ...exotique

Merci
Géany est dans les dépôts?
Pour le fichier c est pour découvrir un peu plus le code, pour m amuser
J avais écrit plein de programmes comme le pendu master Mind calcul de Pâques et des jours
Et toute une batterie sur les sudokus, creation, résolution, dépistage des faux etc..
Mais c est surtout pour apprendre un peu plus toute la richesse du système
Je vais m acheter sûrement un bouquin qui explique un peu tout ça
Ton script avec songrec est génial
J ai toute une batterie de cd et je ne sais pas ce qu il y a dessus
Je vais me constituer une liste, je pense que ton script peut servir à bien d autres
J’ai toujours dans mes programmes donne plein d infos sur la base étudiée, nombre de livres, les occurrences et les temps etc…
Quand on balaie une base de données,autant en profiter pour exprimer la synthèse de son contenu
Mon problème : quand on commence à mettre le doigt dedans …..on peut y passer des nuits
Merci en tous cas pour ton éclairage
Sous Linux j aime écrire dans un fichier le temps pour arriver à démarrer

J ai appris à manipuler les lanceurs et les scripts
J ai étudié la creation de clé Linux etc..
C est à l infini, mais tu le sais
Et la communauté est très réactive , tu en es la preuve
J ai toujours trouvé ici les réponses à mes questions
Merci encore
Jm

Hors ligne

Pied de page des forums