Extraire une chaine et indiquer le nom du rép
Résolu
mecool23
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
mecool23 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
mecool23 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
a la suite du sujet "extraire une chaine de caractére", j ai rencontré un autre probléme celui du chemin, dans lle fichier résultant <tmp.txt> j ai besoin de savoir la source de chaque chaîne
__sous répertoire 1
| |__interferogram.out
|__sous répértoire 2
| |__interferogram.out
|__sous répértoire 3
| |__interferogram.out
|__sous répértoire 4
| |__interferogram.out
|__tmp.txt
le résultat voulu extrait du fichier <tmp.txt>
le nom du sous répertoire 1 16534673
le nom du sous répértoire 2 12345679
le nom du sous répértoire 3 14567865
le nom du sous répértoire 4 17654379
merci d avance
a la suite du sujet "extraire une chaine de caractére", j ai rencontré un autre probléme celui du chemin, dans lle fichier résultant <tmp.txt> j ai besoin de savoir la source de chaque chaîne
__sous répertoire 1
| |__interferogram.out
|__sous répértoire 2
| |__interferogram.out
|__sous répértoire 3
| |__interferogram.out
|__sous répértoire 4
| |__interferogram.out
|__tmp.txt
le résultat voulu extrait du fichier <tmp.txt>
le nom du sous répertoire 1 16534673
le nom du sous répértoire 2 12345679
le nom du sous répértoire 3 14567865
le nom du sous répértoire 4 17654379
merci d avance
A voir également:
- Extraire une chaine et indiquer le nom du rép
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Chaine tnt gratuite sur mobile - Guide
- Extraire texte d'une image - Guide
- Extraire image pdf - Guide
3 réponses
Un exemple à adapter :
$ tree . `-- repertoire1 |-- interferogram1.out `-- sous_repertoire2 |-- interferogram2.out `-- sous_repertoire3 |-- interferogram3.out `-- sous_repertoire4 `-- interferogram4.out 4 directories, 4 files $ find . -name "interferogram?.out" -exec dirname {} \; -exec basename {} \; | sed 'N;s#\./#Répertoire : #;s/\n/ Fichier : /' Répertoire : repertoire1 Fichier : interferogram1.out Répertoire : repertoire1/sous_repertoire2 Fichier : interferogram2.out Répertoire : repertoire1/sous_repertoire2/sous_repertoire3 Fichier : interferogram3.out Répertoire : repertoire1/sous_repertoire2/sous_repertoire3/sous_repertoire4 Fichier : interferogram4.out [jp@MDK-2008 cyg]$;-))
J'avais bien compris ,mais ce n'est pas si simple que ça, à cause des pipes entre autre ;-((
Mais bon...
Mais bon...
find . -name "interferogram.out" -exec bash -c 'rep=$(basename ${1}); result=$(sed -n "388,/of pixels/{ /of lines\|of pixels/{s/.*\s//p}}" ${1} | sed "N;s/\n/ * /" | bc); echo "${rep/.\//} ${result}"' - {} \; >> tmp.txt;-))
J'avais bien compris ,mais ce n'est pas si simple que ça, à cause des pipes entre autre ;-((
Mais bon...
Mais bon...
find . -name "interferogram.out" -exec bash -c 'rep=$(dirname ${1}); result=$(sed -n "388,/of pixels/{ /of lines\|of pixels/{s/.*\s//p}}" ${1} | sed "N;s/\n/ * /" | bc); echo "${rep##*/} ${result}"' - {} \; >> tmp.txt;-))
find . -name "interferogram.out" -exec sed -n '388,/of pixels/{ /of lines\|of pixels/{s/.*\s//p}}' {} \; | sed 'N;s/\n/ * /' | bc >> tmp.txt
_19920505_20010527(le nom du dossier)
| |__interferogram.out
|__19930417_19960813
| |__interferogram.out
|__19990714_20010405
| |__interferogram.out
|__20020719_20060718
| |__interferogram.out
|__tmp.txt
mais ce que je veux bien, c est d'indiquer le nom du dossier qui contient le fichier <interferogram.out> et à côté la chaîne extraite
le résultat recherché (extrait du fichier tmp.txt)
19920505_20010527(le nom du dossier) 1658241(la chaîne extraite du fichier <interferogram.out>)
19930417_19960813 1524187
19990714_20010405 1427186
20020719_20060718 1714258
merci d avance