Vous n'êtes pas identifié(e).
pour un mp3 c'est:
pour un flac c'est:
il me faudrait un truc du style, une condition qui soit 0 ou 1 :
J'ai bien bidouillé un truc qui fonctionne, mais si je poste ça, enicar va m'arracher les yeux
Je suis même sûr qu'il connait déjà la ligne que j'ai pondue
Merci à vous.
Dernière modification par Anonyme (05-08-2019 12:28:31)
J'ai bien bidouillé un truc qui fonctionne, mais si je poste ça, enicar va m'arracher les yeux
Ah ? Tu as encore des yeux ?
Hors ligne
devrait faire l'affaire. Les « \< » et « \> », ça veut dire limite de début et de fin de mot
respectivement.
Dernière modification par enicar (05-08-2019 12:30:21)
Hors ligne
Une regexp avec un grep du genre :
grep -E '\<[aA]udio\>'
et je compte
et je compte
Tu comptes quoi ?
Hors ligne
Anonyme a écrit :et je compte
Tu comptes quoi ?
Il faut que j'ai 0 ou 1 pour la condition
EDIT : à moins que l'on puisse faire avec le mot en condition ?
Dernière modification par Anonyme (05-08-2019 12:36:47)
Il faut que j'ai 0 ou 1 pour la condition
C'est à dire comme vrai ou faux ?
Hors ligne
Anonyme a écrit :Il faut que j'ai 0 ou 1 pour la condition
C'est à dire comme vrai ou faux ?
Oui
Pas besoin du FILETYPE on met le grep directement dans la condition
du « if ». C'est à dire que l'on utilise le code de retour de grep, sachant
que le code de retour d'un tube est celui de la dernière commande.
Dernière modification par enicar (05-08-2019 12:44:05)
Hors ligne
me sort rien sur aucun des fichiers waw, flac ou mp3
par contre un
me sort bien les infos :
ou
ou encore
le
grep -iq '\<audio\>'
me sort rien sur aucun des fichiers waw, flac ou mp3
Normal, ça sert justement dans les tests où on utilise que le code de retour de
du grep, ça renvoie 0, si le motif est trouvé, 1 sinon. Sachant que 0 est utilisée
comme valeur vraie par le shell, car les commandes qui réussissent renvoient zéro.
Le « -q » c'est pour « quiet », il n'affiche pas de résultats dans le cas
d'une correspondance, mais affiche les erreurs en cas de problème.
Dernière modification par enicar (05-08-2019 13:10:02)
Hors ligne
Hors ligne
Mais je viens de me rendre compte que je me suis trompé,
le principe est bon mais il faut inverser les deux branches du « if »,
quel étourdi je fais là !
Bref la bonne version :
#!/bin/bash
for FILENAME in "$@"; do
if file -b "$FILENAME" |grep -iq '\<audio\>'; then
# ta commande ici
else
echo "Aucun Audio"
fi
done
Ça fonctionne très très bien !!!
Une question tu as fais l'impasse sur le [Aa] avec le grep -iq contrairement au grep -E . Ce premier ne fait pas la différence entre les majuscules/minuscules ?
En ligne
EDIT :
C'est pour ça que j'ai voulu cibler "audio"
Dernière modification par Anonyme (05-08-2019 14:05:03)
Une question tu as fais l'impasse sur le [Aa] avec le grep -iq contrairement au grep -E . Ce premier ne fait pas la différence entre les majuscules/minuscules ?
cf man grep
Hors ligne
Anonyme a écrit :Une question tu as fais l'impasse sur le [Aa] avec le grep -iq contrairement au grep -E . Ce premier ne fait pas la différence entre les majuscules/minuscules ?
cf man grep
Ben voyons. Mais pourquoi j'ai posé cette question ?
Dernière modification par Anonyme (05-08-2019 14:07:19)
Je crois que non. Le mp3 va bloquer je pense :
application/octet-stream
Tes fichiers ont un souci d'encodage je pense, voici un exemple d'appel sur un fichier .mp3 chez moi :
En ligne
Ben voyons. Mais pourquoi j'ai posé cette question ?
par flemme ?
Hors ligne
Je regarde avec quel programme je les ai encodés
Avec ffmpeg et la libmp3lame :
Anonyme a écrit :Ben voyons. Mais pourquoi j'ai posé cette question ?
par flemme ?
Pas faux