#1 Le 28/04/2012, à 13:02
- thomine
[Résolu]Rechercher des fichiers et les convertir en gardant l'original
Bonjour,
Voici ce que je cherche à faire :
1. Dans une arborescence de fichiers, rechercher tous les fichiers avec l'extension .md5
find . -iname '*.md5' -type f
2. Pour chacun de ces fichiers, faire une conversion DOS 2 UNIX (je veux convertir les fins de ligne). J'ai une erreur avec la commande dos2unix, mais a priori on peut faire des choses équivalentes avec sed. Point important et qui rend la commande plus délicate, je ne veux pas écraser le fichier original mais je voudrais en faire une copie, en ajoutant par exemple "_unix" AVANT l'extension du fichier.
Ex : si dans le dossier A j'ai plusieurs fichiers dont fileA1.md5 et dans le dossier B j'ai plusieurs fichiers dont fileB4.md5, je souhaite à la fin obtenir :
Dans le dossier A :
- fileA1.md5 (inchangé, CR/LF)
- fileA1_unix.md5 (LF)
Dans le dossier B :
- fileB4.md5 (inchangé, CR/LF)
- fileB4_unix.md5 (LF)
Comment puis-je faire ça ? J'ai essayé des choses à base de find -exec sans grand succès.
Par avance, merci pour votre aide !
Dernière modification par thomine (Le 28/04/2012, à 16:05)
Hors ligne
#2 Le 28/04/2012, à 13:35
- pingouinux
Re : [Résolu]Rechercher des fichiers et les convertir en gardant l'original
Bonjour,
Peut-être quelque chose comme ça :
shopt -s globstar nocaseglob
for fic in **/*.md5
do
[ -f "$fic" ] || continue
deb="${fic%.*}"
fin="${fic##*.}"
fic_unix="${deb}_unix.$fin"
echo dos2unix -n "$fic" "$fic_unix"
done
Retirer echo devant dos2unix si c'est bon.
Hors ligne
#3 Le 28/04/2012, à 14:09
- thomine
Re : [Résolu]Rechercher des fichiers et les convertir en gardant l'original
Merci pingouinux, ça me semble pas mal du tout. J'ai une erreur avec la commande avec la commande dos2unix :
dos2unix: problems converting file test.md5
J'ai fait un test et ça vient du fait que je travaille sur mon NAS (~/.gvfs/music on 192.168.10.3). Je vais essayer de monter mon dossier différemment pour avancer. Je confirmerai le résultat.
Merci !
Hors ligne
#4 Le 28/04/2012, à 16:04
- thomine
Re : [Résolu]Rechercher des fichiers et les convertir en gardant l'original
Merci à pingouinux, sa solution fonctionne. J'ai mis les lignes suivantes dans un fichier test.sh :
#!/bin/bash
shopt -s globstar nocaseglob
for fic in **/*.md5
do
[ -f "$fic" ] || continue
deb="${fic%.*}"
fin="${fic##*.}"
fic_unix="${deb}_unix.$fin"
dos2unix -n "$fic" "$fic_unix"
done
J'ai résolu mon erreur dos2unix en montant mon dossier par NFS plutôt que SMB.
Hors ligne