Contenu | Rechercher | Menus

Annonce

Le forum rencontre en ce moment quelques soucis de charge, il est possible qu'une erreur soit affichée quand vous postez un message, ne rechargez pas la page au risque de poster une seconde fois votre message

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 28/04/2012, à 13:02

[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

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

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

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

Haut de page ↑