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 18748 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 26 septembre 2024 - 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





A voir également:

3 réponses

dubcek Messages postés 18748 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 26 septembre 2024 5 618
7 juil. 2010 à 14:03
hello
awk ou perl sont probablement plus appropriés que grep, peut-on voir des fichiers d'exemples ?
0
harunabdurrahman Messages postés 2 Date d'inscription mercredi 7 juillet 2010 Statut Membre Dernière intervention 8 juillet 2010
8 juil. 2010 à 09:18
Salut Dubcek,
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
0
dubcek Messages postés 18748 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 26 septembre 2024 5 618
Modifié par dubcek le 8/07/2010 à 12:01
la première colonne contient le username, et la troisième líd,
les colonnes du fichiers ou du HTML ?
peux-tu montrer le résultat ?
0
foobar47 Messages postés 13536 Date d'inscription jeudi 9 janvier 2003 Statut Contributeur Dernière intervention 16 mai 2014 532
8 juil. 2010 à 12:12
Il va travailler sur le fichier sans doute et non sur le rendu... non ?
0
dubcek Messages postés 18748 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 26 septembre 2024 5 618
8 juil. 2010 à 12:18
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,

quel est le username , quel est l'id ?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
8 juil. 2010 à 12:26
Salut,

jp@MDK:~/tmpfs ssh$ cat tableau
<tr>
<td><ft55545b/>fwcstest124<ft55545e/></td>
<td><ft55545b/>9d4e1e23bd5b727046a9e3b4b7db57bd8d6ee684<ft55545e/></td>
<td><ft55545b/>1259831827224<ft55545e/></td>
</tr>
<br>
la première colonne contient le username, et la troisième líd,
<br>
le second tableau contient des lignes comme suit:
<br>
<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>
<br>

jp@MDK:~/tmpfs ssh$ w3m -dump -T text/html tableau

fwcstest124 9d4e1e23bd5b727046a9e3b4b7db57bd8d6ee684 1259831827224
la première colonne contient le username, et la troisième líd,
le second tableau contient des lignes comme suit:
1229294916287 userid=1259067363464,ou=People ContentApprover 1229294722517

jp@MDK:~/tmpfs ssh$
0
foobar47 Messages postés 13536 Date d'inscription jeudi 9 janvier 2003 Statut Contributeur Dernière intervention 16 mai 2014 532
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+
0
dubcek Messages postés 18748 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 26 septembre 2024 5 618
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>
$ 
$ 
0