- Modifié
Bonjour,
Je ne parviens pas à comprendre l’usage du separateur de champs F et FS de AWK
J'ai fait 2 tests sans parvenir à avoir le résultat attendu
Fichier ActionDoublons.txt
Code script Info3 :
Même fichier Ationdoublons.txt
Mon code :
Merci bien
Je ne parviens pas à comprendre l’usage du separateur de champs F et FS de AWK
J'ai fait 2 tests sans parvenir à avoir le résultat attendu
Fichier ActionDoublons.txt
§§§§§§ Empreinte MD5 identique pour : 0cbbff1c0f1c5bdc5ce8e2b8f483e560 des fichiers suivants :
Racine/Rep2.3DossierNormal § F2.3FichTexte1.txt
Racine/REPORIAvecFichierPb § FOri2_FichTexte1.txt
§§§§§§ Empreinte MD5 identique pour : 10a6ada757ec577d3a3db0654dd60a45 des fichiers suivants :
Racine § F2.CpBBID2_EspaceApresNef.nef
Racine/Rep2.2 Espace Doublons § F2.2 CpBBID2_EspaceApresNef.nef
Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace § F2.2.2.1 CpBBID2_EspaceApresNef.nef
Racine/Rep2foisDblons § F2.X2.2.1 CpBBID2_EspaceApresNef.nef
Racine/Rep2foisDblons § FOrig2.1 CpBBID2_EspaceApresNef.nef
Racine/REPORIAvecFichierPb § FOrig2.1 CpBBID2_EspaceApresNef.nef
§§§§§§ Empreinte MD5 identique pour : 93243bbb48aa8de88968bee06e6c8c9b des fichiers suivants :
Racine § F2BBID1_1 espaceApresJpg.jpg
Racine/Rep2.2 Espace Doublons § F2.2BID1_1espaceApresJpg.jpg
Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace § F2.2.2.1BBID1_1 espaceApresJpg.jpg
Racine/Rep2foisDblons § F2.1X2_BBID1_1 espaceApresJpg.jpg
Racine/Rep2foisDblons § FOri2.1BBID1_1 espaceApresJpg.jpg
Racine/REPORIAvecFichierPb § FOri2.1BBID1_1 espaceApresJpg.jpg
§§§§§§ Empreinte MD5 identique pour : d3fad710647642c327aceeec1b773a71 des fichiers suivants :
Racine § F2_F07 Fichier avec espaces.mp3
Racine/Rep2.2 Espace Doublons § F2.2_F07 Fichier avec espaces.mp3
Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace § F2.2.2.1_F07 Fichier avec espaces.mp3
Racine/REPORIAvecFichierPb § FOri2.1_F07 Fichier avec espaces.mp3
§§§§§§ Empreinte MD5 identique pour : f6638c0e380e1a9a89b026c2f33600f9 des fichiers suivants :
Racine/Rep2.2 Espace Doublons § FichierTxt3.txt
Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace § FichierTxt3.txt
Racine/Rep2.3DossierNormal § FichierTxt3.txt
Racine/REPORIAvecFichierPb § FOri2_FichierTxt3.txt
Test1 :Code script Info3 :
#!/bin/bash
echo ---$0------------------------------------------ INFO 3---------------------------------------------------------
REP="/home/phil/ToutesSauvegardes/JournalSavTestSauvegarde/ActionDoublons.txt"
echo "Ci-après la liste des noms des répertoires avec le nombre de doublons dans ce répertoire/nombre de fichiers présents, je suis ici $PWD "
awk 'BEGIN { print "Début de Info3 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< : "; FS=" § " }
{
if (/^\s*§+/) { next }
else
{ NomRep[$1]=$1; NbRepDbl[$1]+=1; printf ("NomRep " NomRep[$1] "--- Nbre Chps :" NF "---" $0" \n");
"find "NomRep[$1]" -maxdepth 1 ! -name \".*\" -type f | wc -l" | getline NbDblonRep[$1];}
}
END {
for ( Dblon in NbRepDbl) {
printf("Repertoire doublon : %15s ===> %3d doublons sur %3s " , NomRep[Dblon] , NbRepDbl[Dblon] , NbDblonRep[Dblon] );
print("fichiers \n");
}
}' "$REP"
Resultat le nombre de champs est bien de 2, mais il ne traite pas correctement find et le decompte pour les dossier avec des espaces dans le chemin de repertoires:
hil@phil-G750JH:~/Documents/JeCodeShell/TestAWK$ ./Info3.awk
---./Info3.awk------------------------------------------ INFO 3---------------------------------------------------------
Ci-après la liste des noms des répertoires avec le nombre de doublons dans ce répertoire/nombre de fichiers présents, je suis ici /home/phil/Documents/JeCodeShell/TestAWK
Début de Info3 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< :
NomRep Racine/Rep2.3DossierNormal--- Nbre Chps :2---Racine/Rep2.3DossierNormal § F2.3FichTexte1.txt
NomRep Racine/REPORIAvecFichierPb--- Nbre Chps :2---Racine/REPORIAvecFichierPb § FOri2_FichTexte1.txt
NomRep Racine--- Nbre Chps :2---Racine § F2.CpBBID2_EspaceApresNef.nef
NomRep Racine/Rep2.2 Espace Doublons --- Nbre Chps :2---Racine/Rep2.2 Espace Doublons § F2.2 CpBBID2_EspaceApresNef.nef
find: ‘Racine/Rep2.2’: Aucun fichier ou dossier de ce type
find: ‘Espace’: Aucun fichier ou dossier de ce type
find: ‘Doublons’: Aucun fichier ou dossier de ce type
NomRep Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace--- Nbre Chps :2---Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace § F2.2.2.1 CpBBID2_EspaceApresNef.nef
find: ‘Racine/Rep2.2’: Aucun fichier ou dossier de ce type
find: ‘Espace’: Aucun fichier ou dossier de ce type
find: ‘Doublons’: Aucun fichier ou dossier de ce type
find: ‘/Rep2.2.2.1’: Aucun fichier ou dossier de ce type
find: ‘Doss’: Aucun fichier ou dossier de ce type
find: ‘Espace’: Aucun fichier ou dossier de ce type
NomRep Racine/Rep2foisDblons--- Nbre Chps :2---Racine/Rep2foisDblons § F2.X2.2.1 CpBBID2_EspaceApresNef.nef
NomRep Racine/Rep2foisDblons--- Nbre Chps :2---Racine/Rep2foisDblons § FOrig2.1 CpBBID2_EspaceApresNef.nef
NomRep Racine/REPORIAvecFichierPb--- Nbre Chps :2---Racine/REPORIAvecFichierPb § FOrig2.1 CpBBID2_EspaceApresNef.nef
NomRep Racine--- Nbre Chps :2---Racine § F2BBID1_1 espaceApresJpg.jpg
NomRep Racine/Rep2.2 Espace Doublons --- Nbre Chps :2---Racine/Rep2.2 Espace Doublons § F2.2BID1_1espaceApresJpg.jpg
NomRep Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace--- Nbre Chps :2---Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace § F2.2.2.1BBID1_1 espaceApresJpg.jpg
NomRep Racine/Rep2foisDblons--- Nbre Chps :2---Racine/Rep2foisDblons § F2.1X2_BBID1_1 espaceApresJpg.jpg
NomRep Racine/Rep2foisDblons--- Nbre Chps :2---Racine/Rep2foisDblons § FOri2.1BBID1_1 espaceApresJpg.jpg
NomRep Racine/REPORIAvecFichierPb--- Nbre Chps :2---Racine/REPORIAvecFichierPb § FOri2.1BBID1_1 espaceApresJpg.jpg
NomRep Racine--- Nbre Chps :2---Racine § F2_F07 Fichier avec espaces.mp3
NomRep Racine/Rep2.2 Espace Doublons --- Nbre Chps :2---Racine/Rep2.2 Espace Doublons § F2.2_F07 Fichier avec espaces.mp3
NomRep Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace--- Nbre Chps :2---Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace § F2.2.2.1_F07 Fichier avec espaces.mp3
NomRep Racine/REPORIAvecFichierPb--- Nbre Chps :2---Racine/REPORIAvecFichierPb § FOri2.1_F07 Fichier avec espaces.mp3
NomRep Racine/Rep2.2 Espace Doublons --- Nbre Chps :2---Racine/Rep2.2 Espace Doublons § FichierTxt3.txt
NomRep Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace--- Nbre Chps :2---Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace § FichierTxt3.txt
NomRep Racine/Rep2.3DossierNormal--- Nbre Chps :2---Racine/Rep2.3DossierNormal § FichierTxt3.txt
NomRep Racine/REPORIAvecFichierPb--- Nbre Chps :2---Racine/REPORIAvecFichierPb § FOri2_FichierTxt3.txt
Repertoire doublon : Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace ===> 4 doublons sur 0 fichiers
Repertoire doublon : Racine/Rep2.3DossierNormal ===> 2 doublons sur 3 fichiers
Repertoire doublon : Racine/Rep2.2 Espace Doublons ===> 4 doublons sur 0 fichiers
Repertoire doublon : Racine ===> 3 doublons sur 3 fichiers
Repertoire doublon : Racine/REPORIAvecFichierPb ===> 5 doublons sur 6 fichiers
Repertoire doublon : Racine/Rep2foisDblons ===> 4 doublons sur 4 fichiers
phil@phil-G750JH:~/Documents/JeCodeShell/TestAWK$
second casMême fichier Ationdoublons.txt
Mon code :
#!/bin/bash
echo " ---------------------$0------------------------ INFO 3--------------------------------------------------------"
REP="/home/phil/ToutesSauvegardes/JournalSavTestSauvegarde/ActionDoublons.txt"
echo "Ci-après la liste des noms des répertoires avec le nombre de doublons dans ce répertoire/nombre de fichiers présents, je suis ici $PWD "
awk -F[' § '] 'BEGIN { print "Début de Info3 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< : "; }
{
if (/^\s*§+/) { next }
else
{ NomRep[$1]=$1; NbRepDbl[$1]+=1; printf ("NomRep " NomRep[$1] "--- Nbre Chps :" NF "---" $0" \n");
"find "NomRep[$1]" -maxdepth 1 ! -name \".*\" -type f | wc -l" | getline NbDblonRep[$1];}
}
END {
for ( Dblon in NbRepDbl) {
printf("Repertoire doublon : %15s ===> %3d doublons sur %3s " , NomRep[Dblon] , NbRepDbl[Dblon] , NbDblonRep[Dblon] );
print("fichiers \n");
}
}' "$REP"
Resultat : Le nombre de champs n'est plus de 2, le nombre de doublons est faux pour le chemin de dossier avec des espaces "Racine/Rep2.2 Espace Doublons "
phil@phil-G750JH:~/Documents/JeCodeShell/TestAWK$ ./Info3_FS.awk
---------------------./Info3_FS.awk------------------------ INFO 3--------------------------------------------------------
Ci-après la liste des noms des répertoires avec le nombre de doublons dans ce répertoire/nombre de fichiers présents, je suis ici /home/phil/Documents/JeCodeShell/TestAWK
Début de Info3 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< :
NomRep Racine/Rep2.3DossierNormal--- Nbre Chps :4---Racine/Rep2.3DossierNormal § F2.3FichTexte1.txt
NomRep Racine/REPORIAvecFichierPb--- Nbre Chps :4---Racine/REPORIAvecFichierPb § FOri2_FichTexte1.txt
NomRep Racine--- Nbre Chps :5---Racine § F2.CpBBID2_EspaceApresNef.nef
NomRep Racine/Rep2.2--- Nbre Chps :9---Racine/Rep2.2 Espace Doublons § F2.2 CpBBID2_EspaceApresNef.nef
find: ‘Racine/Rep2.2’: Aucun fichier ou dossier de ce type
NomRep Racine/Rep2.2--- Nbre Chps :11---Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace § F2.2.2.1 CpBBID2_EspaceApresNef.nef
NomRep Racine/Rep2foisDblons--- Nbre Chps :6---Racine/Rep2foisDblons § F2.X2.2.1 CpBBID2_EspaceApresNef.nef
NomRep Racine/Rep2foisDblons--- Nbre Chps :6---Racine/Rep2foisDblons § FOrig2.1 CpBBID2_EspaceApresNef.nef
NomRep Racine/REPORIAvecFichierPb--- Nbre Chps :6---Racine/REPORIAvecFichierPb § FOrig2.1 CpBBID2_EspaceApresNef.nef
NomRep Racine--- Nbre Chps :6---Racine § F2BBID1_1 espaceApresJpg.jpg
NomRep Racine/Rep2.2--- Nbre Chps :8---Racine/Rep2.2 Espace Doublons § F2.2BID1_1espaceApresJpg.jpg
NomRep Racine/Rep2.2--- Nbre Chps :11---Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace § F2.2.2.1BBID1_1 espaceApresJpg.jpg
NomRep Racine/Rep2foisDblons--- Nbre Chps :6---Racine/Rep2foisDblons § F2.1X2_BBID1_1 espaceApresJpg.jpg
NomRep Racine/Rep2foisDblons--- Nbre Chps :6---Racine/Rep2foisDblons § FOri2.1BBID1_1 espaceApresJpg.jpg
NomRep Racine/REPORIAvecFichierPb--- Nbre Chps :6---Racine/REPORIAvecFichierPb § FOri2.1BBID1_1 espaceApresJpg.jpg
NomRep Racine--- Nbre Chps :7---Racine § F2_F07 Fichier avec espaces.mp3
NomRep Racine/Rep2.2--- Nbre Chps :10---Racine/Rep2.2 Espace Doublons § F2.2_F07 Fichier avec espaces.mp3
NomRep Racine/Rep2.2--- Nbre Chps :12---Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace § F2.2.2.1_F07 Fichier avec espaces.mp3
NomRep Racine/REPORIAvecFichierPb--- Nbre Chps :7---Racine/REPORIAvecFichierPb § FOri2.1_F07 Fichier avec espaces.mp3
NomRep Racine/Rep2.2--- Nbre Chps :7---Racine/Rep2.2 Espace Doublons § FichierTxt3.txt
NomRep Racine/Rep2.2--- Nbre Chps :9---Racine/Rep2.2 Espace Doublons /Rep2.2.2.1 Doss Espace § FichierTxt3.txt
NomRep Racine/Rep2.3DossierNormal--- Nbre Chps :4---Racine/Rep2.3DossierNormal § FichierTxt3.txt
NomRep Racine/REPORIAvecFichierPb--- Nbre Chps :4---Racine/REPORIAvecFichierPb § FOri2_FichierTxt3.txt
Repertoire doublon : Racine/Rep2.3DossierNormal ===> 2 doublons sur 3 fichiers
Repertoire doublon : Racine/Rep2.2 ===> 8 doublons sur 0 fichiers
Repertoire doublon : Racine ===> 3 doublons sur 3 fichiers
Repertoire doublon : Racine/REPORIAvecFichierPb ===> 5 doublons sur 6 fichiers
Repertoire doublon : Racine/Rep2foisDblons ===> 4 doublons sur 4 fichiers
phil@phil-G750JH:~/Documents/JeCodeShell/TestAWK$
Pouvez-vous m'aider à comprendre le problème ?Merci bien