#1 Le 12/12/2021, à 19: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, à 08:22)
Hors ligne
#2 Le 12/12/2021, à 20: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, à 21: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, à 21: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, à 21:58)
Hors ligne
#5 Le 12/12/2021, à 23: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, à 07: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, à 08: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