Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/12/2021, à 20:55

philoeil

[RESOLU] AWK, Une erreur mais ou?

Bonjour,

Ci-dessous le retour d'une erreur que je rencontre dans mon code,
Je n'arrive pas à la trouver ni à la reproduire ailleurs que dans le code complet, un peu long à poster

La portion de code qui semble être à l'origine de l'erreur :

         # Contrôle si des dossiers de MirEgal Choisi font déjà parti de SupprimerMIROIR.txt ou de SupprimerMiroir_Egal_TOUS
            if [ -f "$CheminActionDbl/$MirFILE2" ]
            then
            RetourCM=$(egrep -cx "$LFic" "$CheminActionDbl/$MirFILE2")
            set -x
               if [[ RetourCM -ge 1 ]] # if RetourT plus grand ou egal que 1
               then
               echo -e "\n IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII\nRetourCM=$RetourCM\n ci-dessous $CheminActionDbl/$MirFILE2 : "
                  cat "$CheminActionDbl/$MirFILE2" # représente SupprimerMIROIR.txt
                  # supprime les espaces et lignes vides au cas ou
                  sed '/^#/d; /^$/d; /^\s*$/d; s/ *$//; s/^ *//' "$CheminActionDbl/$MirFILE2" >"$CheminActionDbl/SuppressLignes.tmp"
                  # Recherche les numéros de lignes à effacer
                  ListeSupprimerAction="$CheminActionDbl/SuppressLignes.tmp"
                  echo -e "\n Ci-dessous ListeSupprimerAction : $ListeSupprimerAction"
                  cat "$ListeSupprimerAction"

                  OldIFS=$IFS # penser à sauvegarder IFS
                  while IFS=$'\n' read LignesSupAD
                  do
                  awk -v Suf="$LignesSupAD" '
                  {
                     if ($0 ~ Suf)
                     {
                     print NR
                     }

                  }
                  ' "$ListeSupprimerAction" >> "$Resultat"
                  # Resultat est la liste des numeros de lignes à supprimer

                  done <"$CheminActionDbl/SuppressLignes.tmp"
                  IFS="$OldIFS"

                        sort -n -r "$Resultat" > "$Resultat2"
                        echo "
                        les lignes à supprimer :"
                        cat "$Resultat2"
                        while read LigneSupprime
                        do
                           sed -i "$LigneSupprime"'d' "$ListeSupprimer_Action"

                        done < "$Resultat2"

               fi
            set +x
            fi

Une copie de la partie du journal qui montre l'erreur :

  LFic=/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D/DD/DDD/XAAAMiroirPLUS § XMetadonneePhoto.xmp § 3.62396e-05 § Sun Dec 12 18:32:23.3311714320 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.4027755170 § 04084955f7f41c5c310df99ba1fc6dcf 

retour grep = 1
  EST Superieur à 0 pour chemin fichier déjà présent.
MIROIREGAL=false
FILE2=SupprimerMIROIR.txt

+ [[ RetourCM -ge 1 ]]
+ echo -e '\n IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII\nRetourCM=1\n ci-dessous /home/phil/DgitAspi/Aspi/JournalT7SavTestSauvegarde/SupprimerMIROIR.txt : '

 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
RetourCM=1
+ cat /home/phil/DgitAspi/Aspi/JournalT7SavTestSauvegarde/SupprimerMIROIR.txt
 ci-dessous /home/phil/DgitAspi/Aspi/JournalT7SavTestSauvegarde/SupprimerMIROIR.txt : 
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D/DD/DDD/XAAAMiroirPLUS § XMetadonneePhoto.xmp § 3.62396e-05 § Sun Dec 12 18:32:23.3311714320 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.4027755170 § 04084955f7f41c5c310df99ba1fc6dcf 
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D/DD/DDD/XAAAMiroirPLUS § .XFichCahe.ini § 2.67029e-05 § Sun Dec 12 18:32:23.3391713710 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.4387752730 § 882cd9453eef312a4308882d0a781bfd 
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D/DD/DDD/XAAAMiroirPLUS § XDDD_AAA3.pdf § 2.41787 § Sun Dec 12 18:32:23.3391713710 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.4267753540 § 2616c513a5244b17d4832c8b6f0b0cc3 
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D/DD/DDD/XAAAMiroirPLUS § XDDD_AAA2.pdf § 2.41787 § Sun Dec 12 18:32:23.3311714320 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.4067754890 § 270489072435df7ce259820380f1b206 
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D/DD/DDD/XAAAMiroirPLUS § XDDD_AAA1.pdf § 2.41787 § Sun Dec 12 18:32:23.3351714010 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.4187754080 § de5536325655c467ddc84ad31042acab 
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D § XPlus_CC2.pdf § 2.41787 § Sun Dec 12 18:32:23.2911717360 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.3427759240 § 2b1400cbf828e623889119174e0bd50b 
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D § XPlus_CC1.pdf § 2.41787 § Sun Dec 12 18:32:23.2911717360 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.3307760050 § b24bcc1f5120da5bee77c9a6db12b268 
+ sed '/^#/d; /^$/d; /^\s*$/d; s/ *$//; s/^ *//' /home/phil/DgitAspi/Aspi/JournalT7SavTestSauvegarde/SupprimerMIROIR.txt
+ ListeSupprimerAction=/home/phil/DgitAspi/Aspi/JournalT7SavTestSauvegarde/SuppressLignes.tmp
+ echo -e '\n Ci-dessous ListeSupprimerAction : /home/phil/DgitAspi/Aspi/JournalT7SavTestSauvegarde/SuppressLignes.tmp'

 Ci-dessous ListeSupprimerAction : /home/phil/DgitAspi/Aspi/JournalT7SavTestSauvegarde/SuppressLignes.tmp
+ cat /home/phil/DgitAspi/Aspi/JournalT7SavTestSauvegarde/SuppressLignes.tmp
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D/DD/DDD/XAAAMiroirPLUS § XMetadonneePhoto.xmp § 3.62396e-05 § Sun Dec 12 18:32:23.3311714320 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.4027755170 § 04084955f7f41c5c310df99ba1fc6dcf
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D/DD/DDD/XAAAMiroirPLUS § .XFichCahe.ini § 2.67029e-05 § Sun Dec 12 18:32:23.3391713710 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.4387752730 § 882cd9453eef312a4308882d0a781bfd
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D/DD/DDD/XAAAMiroirPLUS § XDDD_AAA3.pdf § 2.41787 § Sun Dec 12 18:32:23.3391713710 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.4267753540 § 2616c513a5244b17d4832c8b6f0b0cc3
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D/DD/DDD/XAAAMiroirPLUS § XDDD_AAA2.pdf § 2.41787 § Sun Dec 12 18:32:23.3311714320 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.4067754890 § 270489072435df7ce259820380f1b206
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D/DD/DDD/XAAAMiroirPLUS § XDDD_AAA1.pdf § 2.41787 § Sun Dec 12 18:32:23.3351714010 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.4187754080 § de5536325655c467ddc84ad31042acab
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D § XPlus_CC2.pdf § 2.41787 § Sun Dec 12 18:32:23.2911717360 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.3427759240 § 2b1400cbf828e623889119174e0bd50b
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D § XPlus_CC1.pdf § 2.41787 § Sun Dec 12 18:32:23.2911717360 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.3307760050 § b24bcc1f5120da5bee77c9a6db12b268
+ OldIFS=' 	
'
+ IFS='
'
+ read LignesSupAD
+ awk -v 'Suf=/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D/DD/DDD/XAAAMiroirPLUS § XMetadonneePhoto.xmp § 3.62396e-05 § Sun Dec 12 18:32:23.3311714320 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.4027755170 § 04084955f7f41c5c310df99ba1fc6dcf' '
                  {
                     if ($0 ~ Suf)
                     {
                     print NR
                     }

                  }
                  ' /home/phil/DgitAspi/Aspi/JournalT7SavTestSauvegarde/SuppressLignes.tmp
./Aspi.sh: ligne 675: : Aucun fichier ou dossier de ce type
+ IFS='
'

Ma tentative de reproduction de l'erreur qui ne donne pas d'erreur :

phil@phil-G750JH:~/DgitAspi/Aspi$ awk -v Suf="$LignesSupAD" '
>                   {
>                      if ($0 ~ Suf)
>                      {
>                      print NR
>                      }
> 
>                   }
>                   ' "$ListeSupprimerAction" >> "$Resultat"
phil@phil-G750JH:~/DgitAspi/Aspi$ cat $Resultat
1
2
3
4
5
6
7

Merci pour votre Aide

Dernière modification par philoeil (Le 13/12/2021, à 09:22)

Hors ligne

#2 Le 12/12/2021, à 21:15

lynn

Re : [RESOLU] AWK, Une erreur mais ou?

Bonjour,

Il ne manque par un $ devant RetourCM ?

if [[ RetourCM -ge 1 ]]

«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#3 Le 12/12/2021, à 22:03

philoeil

Re : [RESOLU] AWK, Une erreur mais ou?

Bonjour,

Merci lynn, bien vu!

Oui c'est bien une erreur que je corrige. Elle n'a pas de lien avec l'erreur ligne
"./Aspi.sh: ligne 675: : Aucun fichier ou dossier de ce type"
J'ai relancé le code cela ne change rien

Hors ligne

#4 Le 12/12/2021, à 22:39

MicP

Re : [RESOLU] AWK, Une erreur mais ou?

Bonjour

… ligne 675 …

Fait afficher ton fichier par la commande less en utilisant l'option longue line-numbers
qui peut être entrée sous sa forme raccourcie avec simplement la lettre N :

less  -Ns  /chemin/nomDeTonFichierScript

De cette façon, toutes les lignes affichées seront précédées de leur numéro,
et tu pourras utiliser les touche PagSuiv PagPrec (ou et les flèches) pour faire s'afficher l'extrait
que tu pourras sélectionner à la souris pour le copier/coller dans ton message.

Comme ça, on pourra voir ce qu'il y a dans la ligne N°675 et peut-être comprendre d'où vient le problème.

Quand le contenu d'un fichier est affiché par la commande less tu peux appuyer sur la touche h pour faire s'afficher une aide en ligne du pager less,
dans laquelle tu verras qu'il te suffit, quand le fichier est affiché, de taper g675 pour aller directement à la ligne N° 675.

Il y a beaucoup d'autres fonctionnalités intéressantes à apprendre avec la commande less,
comme l'utilisation de motif de recherche.

Dernière modification par MicP (Le 12/12/2021, à 22:58)

Hors ligne

#5 Le 13/12/2021, à 00:16

kamaris

Re : [RESOLU] AWK, Une erreur mais ou?

La variable Resultat doit être vide au moment où la commande awk est exécutée.
On voit que son contenu ne figure pas dans la trace, et ce comportement est reproductible :

$ Resultat=''
$ set -x
$ echo texte >"$Resultat"
+ echo texte
bash: : Aucun fichier ou dossier de ce type
$ 

Hors ligne

#6 Le 13/12/2021, à 08:59

philoeil

Re : [RESOLU] AWK, Une erreur mais ou?

Bonjour,

Merci MlcP pour l'info less
Le code avec les numeros lignes

661                if [[ "$RetourCM" -ge 1 ]] # if RetourT plus grand ou egal que 1
    662                then
    663                echo -e "\n IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII\nRetourCM=$RetourCM\n ci-dessous $CheminActionDbl/$MirFILE2 : "
    664                   cat "$CheminActionDbl/$MirFILE2" # représente SupprimerMIROIR.txt
    665                   # supprime les espaces et lignes vides au cas ou
    666                   sed '/^#/d; /^$/d; /^\s*$/d; s/ *$//; s/^ *//' "$CheminActionDbl/$MirFILE2" >"$CheminActionDbl/SuppressLignes.tmp"
    667                   # Recherche les numéros de lignes à effacer
    668                   ListeSupprimerAction="$CheminActionDbl/SuppressLignes.tmp"
    669                   echo -e "\n Ci-dessous ListeSupprimerAction : $ListeSupprimerAction"
    670                   cat "$ListeSupprimerAction"
    671 
    672                   OldIFS=$IFS # penser à sauvegarder IFS
    673                   while IFS=$'\n' read LignesSupAD
    674                   do
    675                   awk -v Suf="$LignesSupAD" '
    676                   {
    677                      if ($0 ~ Suf)
    678                      {
    679                      print NR
    680                      }
    681 
    682                   }
    683                   ' "$ListeSupprimerAction" >> "$Resultat"

Hors ligne

#7 Le 13/12/2021, à 09:22

philoeil

Re : [RESOLU] AWK, Une erreur mais ou?

Bonjour,
Merci Kamaris
Effectivement Resultat était vide

                  while IFS=$'\n' read LignesSupAD
                  do
                  awk -v Suf="$LignesSupAD" '
                  {
                     if ($0 ~ Suf)
                     {
                     print NR
                     }

                  }
                  ' "$ListeSupprimerAction" >> "$Resultat"
                  # Resultat est la liste des numeros de lignes à supprimer
                  echo "Affichage de Resultat (debug en cours) :"
                  cat "$Resultat"

                  done <"$CheminActionDbl/SuppressLignes.tmp"
                  IFS="$OldIFS"

donne

+ read LignesSupAD
+ awk -v 'Suf=/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T7Racine/D/DD/DDD/XAAAMiroirPLUS § XMetadonneePhoto.xmp § 3.62396e-05 § Sun Dec 12 18:32:23.3311714320 2021 §  dernier accès le dimanche 12 décembre 2021 à 18:33:18.4027755170 § 04084955f7f41c5c310df99ba1fc6dcf' '
                  {
                     if ($0 ~ Suf)
                     {
                     print NR
                     }

                  }
                  ' /home/phil/DgitAspi/Aspi/JournalT7SavTestSauvegarde/SuppressLignes.tmp
./Aspi.sh: ligne 675: : Aucun fichier ou dossier de ce type
Affichage de Resultat (debug en cours) :
+ echo 'Affichage de Resultat (debug en cours) :'
+ cat ''
cat: '': Aucun fichier ou dossier de ce type

Ton info m'a permis de comprendre que j'avais fait une boulette ici
j'avais écrit

unset Resultat

au lieu de

            truncate -s 0 "$Resultat"

C'est corrigé et Resolu!
Merci encore Kamaris

Hors ligne