Je recherche une commande qui me permettrait de faire un petit traitement sur les noms de fichier...
Un petit exemple :
find /etc -name '*.new' -exec diff {} ... \;
Dans cette commande, je souhaite faire une comparaison avec chaque fichier truc.new trouvés et leur homologue truc...
Mon problème, à partir du nom de fichier truc.new comment puis je obtenir truc pour faire la comparaison ?
En plus clair comment enlever l'extension (ou tout autre chose) du nom d'un fichier ?
# % en bash
Posté par aurel (site web personnel, Mastodon) . Évalué à 2.
MAVARIABLE=truc.new;
echo ${MAVARIABLE};
echo ${MAVARIABLE%.new}
donne :
truc.new
truc
[^] # Re: % en bash
Posté par Spack . Évalué à 1.
[^] # basename en general
Posté par Antoine Reilles (site web personnel) . Évalué à 2.
la commande "basename plop.new .new"
donne "plop"
maintenant, a toi de tout mettre en ordre
ça donnerait quelque chose comme:
find /etc -name '*.new' -exec diff {} `basename {} .new` \;
[^] # Re: basename en general
Posté par Antoine Reilles (site web personnel) . Évalué à 1.
Et puis comme je ne suis jamais capable d'utiliser -exec avec find, je prefere utiliser "for"
for i in `find . -name "*.new"`; diff $i `basename $i .new`
[^] # Re: basename en general
Posté par Spack . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.