Decouper une chaine de caractere

Résolu/Fermé
redanovich - 21 oct. 2010 à 09:28
 redanovich - 21 oct. 2010 à 10:18
Bonjour,
pour commencer je voudrai vous remercier pour votre aide, mon besoin consiste à ce que découper le chemin vers un répertoire récupéré par "Find", pour n'avoir que deux chaine de caractère le dernier répertoire et le chemin vers ce derniers répertoire.
find . -name 'fichier.ext' > list.txt
donne :
./1111/22222/33333/fichier.ext
./1111/22222/33333/4444444/fichier.ext
./1111/22222/33333/4444444/555555/666666/fichier.ext

et moi je veux récupérer:
pour la première ligne "./1111/22222/" et "33333"
pour deuxième ligne "./1111/22222/33333/" et "4444444"
pour troisième ligne "./1111/22222/33333/4444444/555555" et "666666"
je suis nouveau sur shell, je j'avoue que je suis dépassé par ce problème

merci d'avance.

A voir également:

2 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
21 oct. 2010 à 10:03
Salut,

$ cat plop
./1111/22222/33333/fichier.ext
./1111/22222/33333/4444444/fichier.ext
./1111/22222/33333/4444444/555555/666666/fichier.ext

$ cat foo.sh
#! /bin/bash

while read line
do
        LINE=$(dirname ${line})
        echo "Chemin = ${LINE%/*}"
        echo "Répertoire = ${LINE##*/}"
done < plop

$ ./foo.sh
Chemin = ./1111/22222
Répertoire = 33333
Chemin = ./1111/22222/33333
Répertoire = 4444444
Chemin = ./1111/22222/33333/4444444/555555
Répertoire = 666666

$

;-))
0
mille merci , je vais pouvoir continuer ^^
0