Decouper une chaine de caractere [Résolu/Fermé]

Signaler
-
 redanovich -
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.

2 réponses

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 810
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

$

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