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 27/12/2019, à 18:47

philoeil

[RESOLU] Commande Awk retour incompris

Bonjour,

Dans un shell avec une commande AWK je ne parviens pas à obtenir le resultat attendu suivant :

Resultat attendu
    Pour chaque ligne commençant par §§§§§§ ecrire "Ligne en cours debut MD5 identique :" NR" "$1 $2 $3 $4 $5 $6 $7 $8 $9 }
    Pour chaque ligne ne commençant pas par §§§§§§ ecrire "sinon ==============NR= " NR "**********" $1 $2 $3 }

Les premieres lignes du fichier $REP
   

 §§§§§  Empreinte MD5 identique pour : 0017c379a4adccb122a87506c359ed60 des fichiers suivants :
Herbie Hancock feat. Stevie Wonder - St. Louis Blues.mp3 § 5670324 §/media/phil/SD2_MUSIQ/musiq2007/mp3/Herbie Hancock/Herbie Hancock feat. Stevie Wonder - St. Louis Blues.mp3
Herbie Hancock feat. Stevie Wonder - St. Louis Blues.mp3 § 5670324 §/media/phil/SD2_MUSIQ/musiqueSD2/Herbie Hancock/Herbie Hancock feat. Stevie Wonder - St. Louis Blues.mp3
§§§§§  Empreinte MD5 identique pour : 00a59777a33ce7aa748dfa610af573d5 des fichiers suivants :
lecon21 22.mp3 § 2358902 §/media/phil/SD2_MUSIQ/deutch lecons/lecon21 22.mp3
lecon21 22.mp3 § 2358902 §/media/phil/SD2_MUSIQ/musiq2007/Vocal/Allemand/lecon21 22.mp3
§§§§§§  Empreinte MD5 identique pour : 00a90ae51fb9c0bff9da4cbc72e253d3 des fichiers suivants :
The Whispers - And The Beat Goes On.mp3 § 4723732 §/media/phil/SD2_MUSIQ/morpheus_dThib/The Whispers - And The Beat Goes On.mp3
The Whispers - And The Beat Goes On.mp3 § 4723732 §/media/phil/SD2_MUSIQ/musiq2009/thib/The Whispers - And The Beat Goes On.mp3
The Whispers - And The Beat Goes On.mp3 § 4723732 §/media/phil/SD2_MUSIQ/musiqueSD2/Funk/The Whispers - And The Beat Goes On.mp3
§§§§§§  Empreinte MD5 identique pour : 00c16b214821b96e668d01c1accba9fd des fichiers suivants :
Drum song.mp3 § 5262629 §/media/phil/SD2_MUSIQ/musiq2007/mp3/Jackie Mitoo - The keyboard king of studio one/Drum song.mp3
Drum song.mp3 § 5262629 §/media/phil/SD2_MUSIQ/musiqueSD2/Jackie Mitoo - The keyboard king of studio one/Drum song.mp3
§§§§§§  Empreinte MD5 identique pour : 00e6ea9bdc80ee814ac70bcb3ca64b68 des fichiers suivants :
AlbumArt_{EA53BFCE-0808-450D-A507-46691458C004}_Large.jpg § 7892 §/media/phil/SD2_MUSIQ/musique_cd/Paris Combo/5/AlbumArt_{EA53BFCE-0808-450D-A507-46691458C004}_Large.jpg
Folder.jpg § 7892 §/media/phil/SD2_MUSIQ/musique_cd/Paris Combo/5/Folder.jpg
§§§§§§  Empreinte MD5 identique pour : 00ec668571f04cb0e2f46d7058663a96 des fichiers suivants :
Rico Rodriguez - Roots to the bone - Track (2).mp3 § 4572474 §/media/phil/SD2_MUSIQ/musiq2007/mp3/Rico Rodriguez - roots to the bone/Rico Rodriguez - Roots to the bone - Track (2).mp3
Rico Rodriguez - Roots to the bone - Track (2).mp3 § 4572474 §/media/phil/SD2_MUSIQ/musiqueSD2/Rico Rodriguez - roots to the bone/Rico Rodriguez - Roots to the bone - Track (2).mp3
§§§§§§  Empreinte MD5 identique pour : 00f62d2ce5a1938644dfa766160c7a6a des fichiers suivants :
AlbumArt_{DFF0E6E9-0F9E-4B00-BD03-3ED8B0E45592}_Large.jpg § 9096 §/media/phil/SD2_MUSIQ/musiq2007/cathy/tom pouce/AlbumArt_{DFF0E6E9-0F9E-4B00-BD03-3ED8B0E45592}_Large.jpg
Folder.jpg § 9096 §/media/phil/SD2_MUSIQ/musiq2007/cathy/tom pouce/Folder.jpg

La commande
   

 awk -F' §' 'BEGIN { print " Je vérifie le nombre de doublon qui suit chaque §§§§§§ entre 2 ligne commençant par §§§§§§" }

{
 if ($1=="§§§§§§") { print "Ligne en cours debut MD5 identique :" NR" "$1 $2 $3 $4 $5 $6 $7 $8 $9 }

 else
	 if ($1!="§§§§§§") { print "sinon ==============NR= " NR "**********" $1 $2 $3 }

}
END { print "verification terminée"} ' $REP

Resultat erroné reçu
   

  Je vérifie le nombre de doublon qui suit chaque §§§§§§ entre 2 ligne commençant par §§§§§§
sinon ==============NR= 1**********§§§§§  Empreinte MD5 identique pour : 0017c379a4adccb122a87506c359ed60 des fichiers suivants :
sinon ==============NR= 2**********Herbie Hancock feat. Stevie Wonder - St. Louis Blues.mp3 5670324/media/phil/SD2_MUSIQ/musiq2007/mp3/Herbie Hancock/Herbie Hancock feat. Stevie Wonder - St. Louis Blues.mp3
sinon ==============NR= 3**********Herbie Hancock feat. Stevie Wonder - St. Louis Blues.mp3 5670324/media/phil/SD2_MUSIQ/musiqueSD2/Herbie Hancock/Herbie Hancock feat. Stevie Wonder - St. Louis Blues.mp3
sinon ==============NR= 4**********§§§§§  Empreinte MD5 identique pour : 00a59777a33ce7aa748dfa610af573d5 des fichiers suivants :
sinon ==============NR= 5**********lecon21 22.mp3 2358902/media/phil/SD2_MUSIQ/deutch lecons/lecon21 22.mp3
sinon ==============NR= 6**********lecon21 22.mp3 2358902/media/phil/SD2_MUSIQ/musiq2007/Vocal/Allemand/lecon21 22.mp3
sinon ==============NR= 7**********§§§§§§  Empreinte MD5 identique pour : 00a90ae51fb9c0bff9da4cbc72e253d3 des fichiers suivants :
sinon ==============NR= 8**********The Whispers - And The Beat Goes On.mp3 4723732/media/phil/SD2_MUSIQ/morpheus_dThib/The Whispers - And The Beat Goes On.mp3
sinon ==============NR= 9**********The Whispers - And The Beat Goes On.mp3 4723732/media/phil/SD2_MUSIQ/musiq2009/thib/The Whispers - And The Beat Goes On.mp3
sinon ==============NR= 10**********The Whispers - And The Beat Goes On.mp3 4723732/media/phil/SD2_MUSIQ/musiqueSD2/Funk/The Whispers - And The Beat Goes On.mp3
sinon ==============NR= 11**********§§§§§§  Empreinte MD5 identique pour : 00c16b214821b96e668d01c1accba9fd des fichiers suivants :
sinon ==============NR= 12**********Drum song.mp3 5262629/media/phil/SD2_MUSIQ/musiq2007/mp3/Jackie Mitoo - The keyboard king of studio one/Drum song.mp3
sinon ==============NR= 13**********Drum song.mp3 5262629/media/phil/SD2_MUSIQ/musiqueSD2/Jackie Mitoo - The keyboard king of studio one/Drum song.mp3
sinon ==============NR= 14**********§§§§§§  Empreinte MD5 identique pour : 00e6ea9bdc80ee814ac70bcb3ca64b68 des fichiers suivants :
sinon ==============NR= 15**********AlbumArt_{EA53BFCE-0808-450D-A507-46691458C004}_Large.jpg 7892/media/phil/SD2_MUSIQ/musique_cd/Paris Combo/5/AlbumArt_{EA53BFCE-0808-450D-A507-46691458C004}_Large.jpg
sinon ==============NR= 16**********Folder.jpg 7892/media/phil/SD2_MUSIQ/musique_cd/Paris Combo/5/Folder.jpg

Merci de votre aide

Dernière modification par philoeil (Le 27/12/2019, à 20:29)

Hors ligne

#2 Le 27/12/2019, à 19:28

pingouinux

Re : [RESOLU] Commande Awk retour incompris

Bonsoir,
Déjà, la première ligne du fichier d'entrée commence par " §§§§§" au lieu de "§§§§§§".
Pourquoi as-tu ajouté ce paramètre -F' §' à awk ?
Essaye sans le paramètre -F, et précise ensuite ta demande si ça ne convient pas.

Hors ligne

#3 Le 27/12/2019, à 19:28

kamaris

Re : [RESOLU] Commande Awk retour incompris

En modifiant juste au niveau des correspondances de motifs :

awk 'BEGIN { print " Je vérifie le nombre de doublon qui suit chaque §§§§§§ entre 2 ligne commençant par §§§§§§" }
/^\s*§+/{ print "Ligne en cours debut MD5 identique :" NR" "$1 $2 $3 $4 $5 $6 $7 $8 $9; next }
{ print "sinon ==============NR= " NR "**********" $1 $2 $3 }
END { print "verification terminée"} ' $REP

j'obtiens ça :

 Je vérifie le nombre de doublon qui suit chaque §§§§§§ entre 2 ligne commençant par §§§§§§
Ligne en cours debut MD5 identique :1 §§§§§EmpreinteMD5identiquepour:0017c379a4adccb122a87506c359ed60desfichiers
sinon ==============NR= 2**********HerbieHancockfeat.
sinon ==============NR= 3**********HerbieHancockfeat.
Ligne en cours debut MD5 identique :4 §§§§§EmpreinteMD5identiquepour:00a59777a33ce7aa748dfa610af573d5desfichiers
sinon ==============NR= 5**********lecon2122.mp3§
sinon ==============NR= 6**********lecon2122.mp3§
Ligne en cours debut MD5 identique :7 §§§§§§EmpreinteMD5identiquepour:00a90ae51fb9c0bff9da4cbc72e253d3desfichiers
sinon ==============NR= 8**********TheWhispers-
sinon ==============NR= 9**********TheWhispers-
sinon ==============NR= 10**********TheWhispers-
Ligne en cours debut MD5 identique :11 §§§§§§EmpreinteMD5identiquepour:00c16b214821b96e668d01c1accba9fddesfichiers
sinon ==============NR= 12**********Drumsong.mp3§
sinon ==============NR= 13**********Drumsong.mp3§
Ligne en cours debut MD5 identique :14 §§§§§§EmpreinteMD5identiquepour:00e6ea9bdc80ee814ac70bcb3ca64b68desfichiers
sinon ==============NR= 15**********AlbumArt_{EA53BFCE-0808-450D-A507-46691458C004}_Large.jpg§7892
sinon ==============NR= 16**********Folder.jpg§7892
Ligne en cours debut MD5 identique :17 §§§§§§EmpreinteMD5identiquepour:00ec668571f04cb0e2f46d7058663a96desfichiers
sinon ==============NR= 18**********RicoRodriguez-
sinon ==============NR= 19**********RicoRodriguez-
Ligne en cours debut MD5 identique :20 §§§§§§EmpreinteMD5identiquepour:00f62d2ce5a1938644dfa766160c7a6adesfichiers
sinon ==============NR= 21**********AlbumArt_{DFF0E6E9-0F9E-4B00-BD03-3ED8B0E45592}_Large.jpg§9096
sinon ==============NR= 22**********Folder.jpg§9096
verification terminée

Est-ce que c'est ce que tu veux ?

Hors ligne

#4 Le 27/12/2019, à 19:37

philoeil

Re : [RESOLU] Commande Awk retour incompris

Bonjour,

Merci à Kamari et pingouinux
Effectivement l'erreur était dans mon code j'ai modifié (pour info J'ai modifié ma réponse le 28/12 (boulette du copier coller ce n'était pas le bon extrait de code) celui-ci marche)

awk -F' § ' 'BEGIN { print " Je vérifie le nombre de doublons qui suit chaque §§§§§§ entre 2 lignes commençant par §§§§§§" }

{
 if (/^\s*§+/) { print "Ligne en cours debut MD5 identique :" NR" "$1 $2 $3 $4 $5 $6 $7 $8 $9 }

 else
	 if ($1!="§§§§§§ ") { print "sinon ==============NR= " NR "**********" $1 $2 $3 } 
}
END { print "verification terminée"} ' $REP

Et cela fonctionne mieux

J'ai une autre question

Comment procédé pour récupérer la liste des lignes des enregistrements commençant par "§§§§§§" ?

Suis-je obligé d'envoyer les n° d'enregistrement dans un fichier, Comment envoyer cela dans une variable du genre maStrVariable="1;4;9;14; etc..." ?

Merci bien

Dernière modification par philoeil (Le 28/12/2019, à 09:44)

Hors ligne

#5 Le 27/12/2019, à 19:43

kamaris

Re : [RESOLU] Commande Awk retour incompris

Pour les lignes commençant par §§§§§§ :

awk '/^§§§§§§/'

Pour récupérer la sortie de awk dans une variable :

maStrVariable=$(awk …)

Hors ligne

#6 Le 27/12/2019, à 20:09

pingouinux

Re : [RESOLU] Commande Awk retour incompris

philoeil #4 a écrit :

Comment procédé pour récupérer la liste des lignes des enregistrements commençant par "§§§§§§" ?

$ maStrVariable=$(awk '/^§§§§§§/{printf("%s;",NR)}' "$REP")
$ echo "$maStrVariable"
1;7;11;14;17;20;

Hors ligne

#7 Le 27/12/2019, à 20:28

philoeil

Re : [RESOLU] Commande Awk retour incompris

Bonjour,

Merci de votre aide
Je comprends un peu mieux comment poursuivre

Je passe en résolu

Hors ligne