Commande shell linux
Fermé
harunabdurrahman
Messages postés
2
Date d'inscription
mercredi 7 juillet 2010
Statut
Membre
Dernière intervention
8 juillet 2010
-
7 juil. 2010 à 09:59
dubcek Messages postés 18779 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 13 avril 2025 - 8 juil. 2010 à 16:04
dubcek Messages postés 18779 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 13 avril 2025 - 8 juil. 2010 à 16:04
Bonjour,
j'ai à manipuler des fichiers html contenant des tableaux avec le shell de linux, le but etant de creer un script faisant une table de hachage entre deux colonnes dudit tableau puis parcourir le second tableau pour remplacer les donnees d'une colonne par une autre, [ar exemple faire un hachage entre username et ID, et apres parcourir le second tableau et remplacer id par username,
avez vous une idee? je suis bloqué avec la commande grep!
merci beaucoup de votre aide,
bonne journée
j'ai à manipuler des fichiers html contenant des tableaux avec le shell de linux, le but etant de creer un script faisant une table de hachage entre deux colonnes dudit tableau puis parcourir le second tableau pour remplacer les donnees d'une colonne par une autre, [ar exemple faire un hachage entre username et ID, et apres parcourir le second tableau et remplacer id par username,
avez vous une idee? je suis bloqué avec la commande grep!
merci beaucoup de votre aide,
bonne journée
A voir également:
- Commande shell linux
- Invite de commande - Guide
- Commande terminal mac - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Commande dism - Guide
- Diskinternals linux reader - Télécharger - Stockage
3 réponses
dubcek
Messages postés
18779
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 avril 2025
5 630
7 juil. 2010 à 14:03
7 juil. 2010 à 14:03
hello
awk ou perl sont probablement plus appropriés que grep, peut-on voir des fichiers d'exemples ?
awk ou perl sont probablement plus appropriés que grep, peut-on voir des fichiers d'exemples ?
foobar47
Messages postés
13536
Date d'inscription
jeudi 9 janvier 2003
Statut
Contributeur
Dernière intervention
16 mai 2014
533
8 juil. 2010 à 11:52
8 juil. 2010 à 11:52
A coups de awk grep et sed, ça doit pouvoir le faire, perl, shell, php, idem.
Si tes balises sont toujours les mêmes, il te "suffit" de remplacer CECI par CELA
userid=[CECI],
<tr><td><ft55545b/>[CELA]</td>
en gras, les balises que entourent tes variables.
A+
Si tes balises sont toujours les mêmes, il te "suffit" de remplacer CECI par CELA
userid=[CECI],
<tr><td><ft55545b/>[CELA]</td>
en gras, les balises que entourent tes variables.
A+
dubcek
Messages postés
18779
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 avril 2025
5 630
8 juil. 2010 à 16:04
8 juil. 2010 à 16:04
il faudrait plus de données pour tester
$ cat a1 <tr> <td><ft55545b/>fwcstest124<ft55545e/></td> <td><ft55545b/>9d4e1e23bd5b727046a9e3b4b7db57bd8d6ee684<ft55545e/></td> <td><ft55545b/>1259831827224<ft55545e/></td> </tr> $ cat a2 <tr> <td><ft22849b/>1229294916287<ft22849e/></td> <td><ft22849b/>userid=1259831827224,ou=People<ft22849e/></td> <td><ft22849b/>ContentApprover<ft22849e/></td> <td><ft22849b/>1229294722517<ft22849e/></td> </tr> $ $ awk -F"[<>]" 'NF < 4 {i=0} ; NR==FNR && NF > 4 {x[i++]=$5 ; if (i==3)y[$5]=x[i-3]; next} ;/userid/{split($5, a, "[=,]"); sub("=[0-9][0-9]*,","=" y[a[2]] ",",$0)}; NR!=FNR{print $0}' a1 a2 <tr> <td><ft22849b/>1229294916287<ft22849e/></td> <td><ft22849b/>userid=fwcstest124,ou=People<ft22849e/></td> <td><ft22849b/>ContentApprover<ft22849e/></td> <td><ft22849b/>1229294722517<ft22849e/></td> </tr> $ $
8 juil. 2010 à 09:18
merci pour ta réponse,
voici un extrait:
le premier tableau contient des lignes comme suit:
<tr>
<td><ft55545b/>fwcstest124<ft55545e/></td>
<td><ft55545b/>9d4e1e23bd5b727046a9e3b4b7db57bd8d6ee684<ft55545e/></td>
<td><ft55545b/>1259831827224<ft55545e/></td>
</tr>
la première colonne contient le username, et la troisième líd,
le second tableau contient des lignes comme suit:
<tr>
<td><ft22849b/>1229294916287<ft22849e/></td>
<td><ft22849b/>userid=1259067363464,ou=People<ft22849e/></td>
<td><ft22849b/>ContentApprover<ft22849e/></td>
<td><ft22849b/>1229294722517<ft22849e/></td>
</tr>
le but est de remplacer le userid dans la seconde colonne par le username correspondant à cet id qui figure dans le premier tableau,.
Merci
Modifié par dubcek le 8/07/2010 à 12:01
les colonnes du fichiers ou du HTML ?
peux-tu montrer le résultat ?
8 juil. 2010 à 12:12
8 juil. 2010 à 12:18
<tr>
<td><ft55545b/>fwcstest124<ft55545e/></td>
<td><ft55545b/>9d4e1e23bd5b727046a9e3b4b7db57bd8d6ee684<ft55545e/></td>
<td><ft55545b/>1259831827224<ft55545e/></td>
</tr>
la première colonne contient le username, et la troisième líd,
quel est le username , quel est l'id ?
8 juil. 2010 à 12:26