Résultat d'un GREP dans une variable
Bonjour,
Je cherche à réaliser un motif de recherche à partir du nom d'un 1er fichier et d'un ID récupéré dans un fichier texte.
Le nom du 1er fichier est : Zone1_10_02_2010_Test.tif
Le fichier texte contient des noms de zones avec des ID correspondants, il est structuré selon la nomenclature suivante : Zone1 196
Ce motif me servira par la suite à rechercher un 2e fichier dans un autre repertoire. (Partie absente du code source ci-dessous)
Voici mon code source :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
#! /bin/bash
for file in *.tif
do
Longueur_NomFichier=$(echo `expr length $file`)
echo "Longeur nom : "$Longueur_NomFichier
#Extraction ID
((Fin_NomZone=$Longueur_NomFichier-20))
NomZone=$(echo $file | cut -c1-$Fin_NomZone)
echo "Nom de la zone : "$NomZone
ID=$( grep -i "$NomZone" ID.txt | awk '{print $2}') # Extrait la ligne du fichier texte contenant motif : $NomZone, puis la 2e colonne
echo "ID : " $ID
#Extraction de la date
((Longueur_NomZone=$Longueur_NomFichier-18))
((Fin_date=$Longueur_NomZone+9))
Date=$(echo $file | cut -c$Longueur_NomZone-$Fin_date)
echo "Date "$Date
Mois=$(echo $Date | cut -c1-2)
echo "Mois "$Mois
J=$(echo $Date | cut -c4-5)
echo "Jour "$J
Annee=$(echo $Date | cut -c7-10)
echo "Annee "$Annee
# Creation du motif
Motif_Recherche1="_"$ID"_"$Annee"-"$Mois"-"$J
Motif_Recherche2="_"$Annee"-"$Mois"-"$J"_"$ID
echo "Motif 1 = "$Motif_Recherche1
echo "Motif 2 = "$Motif_Recherche2
done |
La console m'affiche les résultats suivants :
Citation:
Longeur nom : 25
Nom de la zone : Zone1
ID : 196
Date 10_02_2010
Mois 10
Jour 02
Annee 2010
_2010-10-02196
Motif 2 = _2010-10-02_196
Le motif 2 est affiché correctement contrairement au motif 1. Le motif 2 est un test pour montrer que l'affichage est fait correctement, j'ai besoin uniquement du motif 1 que je ne parviens pas à créer. Je ne comprends pas d'ou vient ce problème.
Pouvez vous si possible me donner un coup de main.
Merci d'avance pour votre aide.
Azgard