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 24/11/2019, à 11:58

philoeil

[RESOLU] retour grep incompris

Bonjour,

Question 1 (peut-être la source de mon probleme question 2 :
    Pourquoi grep me renvoie 0 ici

phil@phil-G750JH:~/Documents/JeCodeShell/Tmp_Ess231119$ grep -c "*" "./FILE2" | cut -d'*' -f 1,2,7 | sed -e "s/*/ § /g"
0
phil@phil-G750JH:~/Documents/JeCodeShell/Tmp_Ess231119$ 

   

phil@phil-G750JH:~/Documents/JeCodeShell/Tmp_Ess231119$ ls
FILE2  RechDbl1.sh
phil@phil-G750JH:~/Documents/JeCodeShell/Tmp_Ess231119$ cat FILE2
0a64bd044a2aeecb85ea8000ed6f3235 
10a6ada757ec577d3a3db0654dd60a45 
93243bbb48aa8de88968bee06e6c8c9b 
f5db8ead2cec83d15f8264fcbc696eca 
ff2e21a57a32d19ca9f8725aaaa2ca4a 
phil@phil-G750JH:~/Documents/JeCodeShell/Tmp_Ess231119$

question 2
J'ai un echec dans le code suivant je ne trouve pas mon erreur pouvez-vous m'aider ?

#!/bin/bash

 for file2 in "./FILE2"; do

	DOUBLON2=1
        echo "§§§§§§  Empreinte MD5 identique pour : $file2 des fichiers suivants :"
        grep $file2 "/media/phil/SD5_VID_1T_N/doublonsMD5SUM.csv" | cut -d'*' -f 1,2,7 | sed -e "s/*/ § /g"
done
phil@phil-G750JH:~/Documents/JeCodeShell/Tmp_Ess231119$ ./RechDbl1.sh 
§§§§§§  Empreinte MD5 identique pour : ./FILE2 des fichiers suivants :
phil@phil-G750JH:~/Documents/JeCodeShell/Tmp_Ess231119$
phil@phil-G750JH:~/Documents/JeCodeShell/Tmp_Ess231119$ cat "/media/phil/SD5_VID_1T_N/doublonsMD5SUM.csv" 
20191110LisezMoi_JournalSauvegarde.txt* 4186* Wed Nov 20 18:21:12.0248235000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:19.3725725000 *EssaiSavImages*da1d14e0dc04b9952eeba7788385ab6b *EssaiSavImages/20191110LisezMoi_JournalSauvegarde.txt
20191111LisezMoi_JournalSauvegarde.txt* 4078* Wed Nov 20 18:21:12.0255847000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:19.3732856000 *EssaiSavImages*4056e781f8f064f4f27fd1b0dac0a1b5 *EssaiSavImages/20191111LisezMoi_JournalSauvegarde.txt
20191115LisezMoi_JournalSauvegarde.txt* 4211* Wed Nov 20 18:21:12.0263585000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:19.3744043000 *EssaiSavImages*76da57a64013582029f16bbd6a6a0e44 *EssaiSavImages/20191115LisezMoi_JournalSauvegarde.txt
20191116LisezMoi_JournalSauvegarde.txt* 4339* Wed Nov 20 18:21:12.0270811000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:19.3751413000 *EssaiSavImages*85f77033ad91f29964b2b097602d51d9 *EssaiSavImages/20191116LisezMoi_JournalSauvegarde.txt
20191120LisezMoi_JournalSauvegarde.txt* 4951* Wed Nov 20 18:22:16.7856575000 2019* dernier accès le vendredi 22 novembre 2019 à 18:53:11.3025569000 *EssaiSavImages*f410eb6d84a89dda1663efc948b31a81 *EssaiSavImages/20191120LisezMoi_JournalSauvegarde.txt
20191122LisezMoi_JournalSauvegarde.txt* 4213* Fri Nov 22 19:58:04.8353863000 2019* dernier accès le samedi 23 novembre 2019 à 10:30:03.5207068000 *EssaiSavImages*2dd86416c2249e48938f10ed81a55e38 *EssaiSavImages/20191122LisezMoi_JournalSauvegarde.txt
20191123LisezMoi_JournalSauvegarde.txt* 4679* Sat Nov 23 22:26:19.9015862000 2019* dernier accès le dimanche 24 novembre 2019 à 08:57:54.2097775000 *EssaiSavImages*ef348afcacaf7992ea3619c9e46cc911 *EssaiSavImages/20191123LisezMoi_JournalSauvegarde.txt
20191124LisezMoi_JournalSauvegarde.txt* 11133* Sun Nov 24 09:36:41.0958992000 2019* dernier accès le dimanche 24 novembre 2019 à 09:37:09.4278522000 *EssaiSavImages*b7506d6b7aff57731ecafda6c9fe6454 *EssaiSavImages/20191124LisezMoi_JournalSauvegarde.txt
ActionDoublons.txt* 371* Sat Nov 23 10:32:39.6438248000 2019* dernier accès le samedi 23 novembre 2019 à 10:33:01.5275733000 *EssaiSavImages*96d2f33f0f08bded060edbe39e9fdb13 *EssaiSavImages/ActionDoublons.txt
BBid_24.nef* 31212270* Wed Nov 20 18:21:11.5954249000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:19.8436062000 *EssaiSavImages/Bid_Img1/BIDImg1.2*0dbdea8ef5f2d376aaffb5cc242e6cf2 *EssaiSavImages/Bid_Img1/BIDImg1.2/BBid_24.nef
BBid_25.jpg* 15755591* Wed Nov 20 18:21:11.6793265000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:19.8747647000 *EssaiSavImages/Bid_Img1/BIDImg1.2*f5db8ead2cec83d15f8264fcbc696eca *EssaiSavImages/Bid_Img1/BIDImg1.2/BBid_25.jpg
BBid_26.nef* 27832053* Wed Nov 20 18:21:11.8188435000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:19.9251489000 *EssaiSavImages/Bid_Img1/BIDImg1.2*e7b6e67193214e16d34a574ffd929e27 *EssaiSavImages/Bid_Img1/BIDImg1.2/BBid_26.nef
BBid_27.jpg* 13820280* Wed Nov 20 18:21:11.8894164000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:19.9509320000 *EssaiSavImages/Bid_Img1/BIDImg1.2*0a64bd044a2aeecb85ea8000ed6f3235 *EssaiSavImages/Bid_Img1/BIDImg1.2/BBid_27.jpg
BBid_28.nef* 26905028* Wed Nov 20 18:21:12.0233294000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:19.9997375000 *EssaiSavImages/Bid_Img1/BIDImg1.2*e96362feee75a02c8c8588454369916f *EssaiSavImages/Bid_Img1/BIDImg1.2/BBid_28.nef
BID1.jpg* 13757937* Wed Nov 20 18:21:09.9603809000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:19.4018065000 *EssaiSavImages/Bid_Img1*93243bbb48aa8de88968bee06e6c8c9b *EssaiSavImages/Bid_Img1/BID1.jpg
BID2.nef* 27409633* Wed Nov 20 18:21:10.0919357000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:19.4531637000 *EssaiSavImages/Bid_Img1*10a6ada757ec577d3a3db0654dd60a45 *EssaiSavImages/Bid_Img1/BID2.nef
BID3.jpg* 12675634* Wed Nov 20 18:21:10.1557447000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:19.4775197000 *EssaiSavImages/Bid_Img1*ff2e21a57a32d19ca9f8725aaaa2ca4a *EssaiSavImages/Bid_Img1/BID3.jpg
CBid_33.jpg* 15755591* Wed Nov 20 18:21:11.0852304000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:20.0783234000 *EssaiSavImages/Bid_Img1*f5db8ead2cec83d15f8264fcbc696eca *EssaiSavImages/Bid_Img1/CBid_33.jpg
CBid_34.jpg* 13820280* Wed Nov 20 18:21:11.1639048000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:20.1037814000 *EssaiSavImages/Bid_Img1*0a64bd044a2aeecb85ea8000ed6f3235 *EssaiSavImages/Bid_Img1/CBid_34.jpg
DblBID1.jpg* 13757937* Sat Nov 23 15:22:46.3971386000 2019* dernier accès le samedi 23 novembre 2019 à 15:23:23.5029825000 *EssaiSavImages/Bid_Img1/BIDImg1.2*93243bbb48aa8de88968bee06e6c8c9b *EssaiSavImages/Bid_Img1/BIDImg1.2/DblBID1.jpg
DblBID2.nef* 27409633* Sat Nov 23 15:23:09.5290561000 2019* dernier accès le dimanche 24 novembre 2019 à 09:00:33.1136252000 *EssaiSavImages/Bid_Img1/BIDImg1.2*10a6ada757ec577d3a3db0654dd60a45 *EssaiSavImages/Bid_Img1/BIDImg1.2/DblBID2.nef
DblBID3.jpg* 12675634* Sat Nov 23 15:23:03.5306522000 2019* dernier accès le dimanche 24 novembre 2019 à 09:00:33.9623106000 *EssaiSavImages/Bid_Img1/BIDImg1.2*ff2e21a57a32d19ca9f8725aaaa2ca4a *EssaiSavImages/Bid_Img1/BIDImg1.2/DblBID3.jpg
LisezMoi_JournalSauvegarde.txt* 3889* Wed Nov 20 18:21:12.1831745000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:20.1544306000 *EssaiSavImages*e24d39efa0a2a1170dff6e3346f92df6 *EssaiSavImages/LisezMoi_JournalSauvegarde.txt
MDDD5.txt* 6143* Sat Nov 23 15:48:45.4558551000 2019* dernier accès le samedi 23 novembre 2019 à 16:58:52.4187451000 *EssaiSavImages*582f6f7d6e87c7c629857b329cc644f9 *EssaiSavImages/MDDD5.txt
TmpDu1.txt* 551* Wed Nov 20 18:21:12.1839002000 2019* dernier accès le mercredi 20 novembre 2019 à 18:21:20.1550528000 *EssaiSavImages*55c80a4889b1a90a456e3fec2d9a145e *EssaiSavImages/TmpDu1.txt
trash:⁄.desktop* 95* Sun Nov 17 22:21:44.1187157000 2019* dernier accès le dimanche 17 novembre 2019 à 22:21:44.1810235000 *EssaiSavImages*559376190f4a105465637644613d1ea5 *EssaiSavImages/trash:⁄.desktop
TriplBID1.jpg* 13757937* Sat Nov 23 17:00:51.3183517000 2019* dernier accès le samedi 23 novembre 2019 à 17:19:15.4145569000 *EssaiSavImages/Bid_Img1*93243bbb48aa8de88968bee06e6c8c9b *EssaiSavImages/Bid_Img1/TriplBID1.jpg
phil@phil-G750JH:~/Documents/JeCodeShell/Tmp_Ess231119$ 

Merci à vous

Dernière modification par philoeil (Le 24/11/2019, à 14:57)

Hors ligne

#2 Le 24/11/2019, à 12:05

pingouinux

Re : [RESOLU] retour grep incompris

Bonjour,
Le caractère * ne figurant pas dans FILE2, il est normal que

grep -c "*" "./FILE2"

renvoie 0.

Ajouté : question 2
Dans

 for file2 in "./FILE2"; do

file2 prend la valeur ./FILE2, et non le contenu du fichier FILE2.
Je pense que tu veux faire ceci :

#!/bin/bash

while read file2; do

        DOUBLON2=1
        echo "§§§§§§  Empreinte MD5 identique pour : $file2 des fichiers suivants :"
        grep "$file2" "/media/phil/SD5_VID_1T_N/doublonsMD5SUM.csv" | cut -d'*' -f 1,2,7 | sed -e "s/*/ § /g"
done <"./FILE2"

Ajouté (2) :
Plus simple

#!/bin/bash

while read file2; do

        DOUBLON2=1
        echo "§§§§§§  Empreinte MD5 identique pour : $file2 des fichiers suivants :"
        awk -v file2="$file2" -F"*" '($6~file2){printf("%s § %s § %s\n",$1,$2,$7)}' "/media/phil/SD5_VID_1T_N/doublonsMD5SUM.csv"
done <"./FILE2"

Dernière modification par pingouinux (Le 24/11/2019, à 12:53)

Hors ligne

#3 Le 24/11/2019, à 13:25

philoeil

Re : [RESOLU] retour grep incompris

Bonjour,
Merci beaucoup pingouinux
Cela marche

Mais dans le code complet je rencontre un problème
Pour appliquer ta correction je dois envoyer les éléments dans un fichier que j'appelle FILE3
Mais la ligne suivante ne marche pas. Quelle est l'erreur ?

awk -F "*" '{print $6}' "$RepSource/$FILE2" | sort | uniq -d >FILE3

Merci

Hors ligne

#4 Le 24/11/2019, à 13:31

pingouinux

Re : [RESOLU] retour grep incompris

Quel est le contenu de ces variables, et du fichier qu'elles représentent ?

"$RepSource/$FILE2"

Hors ligne

#5 Le 24/11/2019, à 13:43

bruno

Re : [RESOLU] retour grep incompris

${RepSource}/${FILE2}

, voir

"${RepSource}"/"${FILE2}"

Hors ligne

#6 Le 24/11/2019, à 13:52

pingouinux

Re : [RESOLU] retour grep incompris

@bruno #5 : ça ne change rien

Hors ligne

#7 Le 24/11/2019, à 14:39

philoeil

Re : [RESOLU] retour grep incompris

Bonjour,
J'ai fait une boulette, ça marche en fait
je m'étais trompé de version en corrigeant et l’exécution du bon shell avec les modifs fonctionne

Merci Pingouinux

Merci Bruno aussi

Dernière modification par philoeil (Le 24/11/2019, à 15:31)

Hors ligne

#8 Le 24/11/2019, à 14:57

pingouinux

Re : [RESOLU] retour grep incompris

philoeil #3 a écrit :

Mais la ligne suivante ne marche pas. Quelle est l'erreur ?

awk -F "*" '{print $6}' "$RepSource/$FILE2" | sort | uniq -d >FILE3

Avec le fichier doublonsMD5SUM.csv que tu as montré en #1, ta commande semble fonctionner :

$ awk -F "*" '{print $6}' doublonsMD5SUM.csv | sort | uniq -d >FILE3
$ cat FILE3
0a64bd044a2aeecb85ea8000ed6f3235 
10a6ada757ec577d3a3db0654dd60a45 
93243bbb48aa8de88968bee06e6c8c9b 
f5db8ead2cec83d15f8264fcbc696eca 
ff2e21a57a32d19ca9f8725aaaa2ca4a

Édité : Tu as corrigé ton message précédent pendant que je préparais celui-ci.

Dernière modification par pingouinux (Le 24/11/2019, à 15:01)

Hors ligne

#9 Le 24/11/2019, à 15:34

philoeil

Re : [RESOLU] retour grep incompris

Salut,

Oui cela marche
Désolé Pingouinux
Merci beaucoup

Hors ligne

#10 Le 24/11/2019, à 17:15

Watael

Re : [RESOLU] retour grep incompris

@bruno

pingouinux a écrit :

ça ne change rien

voire, i nu tile.

les accolades ne sont utiles QUE lorsque le nom de la variable est suivi par un caractère non spécial.
dans le doute, on teste (moi aussi) avant de faire une proposition, mais on ne recommande l'emploi aveugle des accolades (entre autres).

Dernière modification par Watael (Le 24/11/2019, à 17:17)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#11 Le 24/11/2019, à 17:29

bruno

Re : [RESOLU] retour grep incompris

Oui désolé, c'était juste une suggestion maladroite.
Est-ce que l’utilisation d’accolades, en dehors de l'expansion de la variable, à une incidence sur l'exécution du script ?
Sinon, cela m'agace de voir ce terme de « caractère spécial ». Je ne sais pas ce qu'est un caractère spécial.
De ce que je comprends, dans ce cas l'accolade est inutile car le caractère / (qui n'a rien de spécial) ne peut pas être utilisé dans un nom de variable.
Ce que tu appelles un caractère spécial serait donc un caractère qui n'est ni une lettre (sans diacritique), ni un chiffre, ni un tiret - ou _

Dernière modification par bruno (Le 24/11/2019, à 17:40)

Hors ligne

#12 Le 24/11/2019, à 18:05

Watael

Re : [RESOLU] retour grep incompris

le soulignement n'est pas un caractère spécial.

$ var=foo
$ echo $var_bar

$ echo $var-bar
foo-bar

le slash, lui, est spécial sur GNU/Linux : c'est l'indicateur de hiérarchie du système de fichier (il y a des systèmes sur lesquels il n'est pas spécial (...bsd? ...unix?))

man bash :

Le nom du paramètre ou du symbole à développer peut être encadré par des accolades facultatives mais permettant d'éviter le développement de la variable à partir de caractères la suivant immédiatement et qui pourraient être considérés comme appartenant à son nom.

ce n'est effectivement pas super précis. et il n'est en effet pas fait mention de caractère spécial.

les accolades nuisent à la lecture du script, quand elles ne sont pas indispensables, car elles marquent notamment un Développement de paramètres (${var/match/replace}, par exemple; ici, entre accolades le slash change de signification).
et puis, plus de caractères, c'est un fichier plus lourd. wink

Dernière modification par Watael (Le 24/11/2019, à 18:06)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#13 Le 24/11/2019, à 18:26

bruno

Re : [RESOLU] retour grep incompris

Merci pour les explications wink
Effectivement, et c'est assez évident, le tiret simple - n'est pas autorisé dans un nom de variable.

Hors ligne

#14 Le 25/11/2019, à 03:24

kamaris

Re : [RESOLU] retour grep incompris

Le / est spécial sans l'être, puisqu'un nom de fonction peut par exemple en contenir un :

$ /() { echo ok; }
$ /
ok
$

La notion de « caractère spécial » est relative au contexte en bash.
Il en est par exemple fait mention dans man bash au niveau des guillemets doubles, où ils se résument à « $, `, ", \, or <newline> » (et éventuellement « ! »), mais ce terme est aussi utilisé comme synonyme de paramètre spécial (*, @, #, ?, -, $, !, 0, _), ou encore pour désigner « n, t, r, etc. » dans « \n, \t, \r etc. »
En l'occurrence, il ne s'agit pas tellement de « caractère non spécial », mais de tout caractère pouvant composer un nom de variable (un « identifier » dans man bash), c'est-à-dire [0-9a-zA-Z_] en expression régulière, ou \w.

Hors ligne

#15 Le 26/11/2019, à 01:16

Watael

Re : [RESOLU] retour grep incompris

+1


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne