Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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