[quote=“japan445”]
[quote]
page=$(cat monfichier.html)
echo $page | sed blabla
ça marche pas ?[/quote]
Ca fonctionne dans le sens où ca ne produit pas d’erreur, mais je n’ai pas le même résultat
Et j’ai remarqué que echo $page n’affiche pas la même chose qu’un cat mapage.html (me manque un petit bout du début et les retur à la ligne)[/quote]
J’avais aussi remarqué un autre problème par la suite, en faisant
page=$(cat monfichier.html)
echo $page
en plus des retours à la ligne, les /* (début de commentaire html, par ex) etaient interprétés et systématiquement remplacé pas la liste de mon repertoire racine
v445@445-laptop:~$ echo /*
/bin /boot /cdrom /dev /emul /etc /home /initrd.img /initrd.img.old /lib /lib32 /lib64 /lost+found /media /mnt /opt /proc /root /sbin /selinux /srv /sys /tmp /usr /var /vmlinuz /vmlinuz.old
après moult recherches, j’ai trouvé qu’il fallait mettre la variable entre guillemets (comme expliqué ici en anglais)
Donc finalement
page=$(cat monfichier.html)
echo "$page"|sed blabla
fonctionne à merveille (et les sauts de pages sont conservés lors de l’echo)
@ignatioza : merci pour les précisions
Sinon, dernière interrogation (j’espère) à tout hasard (je ne pense pas que ce soit possible, et c’est juste pour une question pratique) : est-il possible de séparet les résultats de sed dans un tableau ? Dans le cas où chaque correspondance est sur plusieurs ligne.
Un exemple sera plus clair :
v445@445-laptop:~/pingoo$ echo "$m"
a
bb
ccc
dddd
bb
a
dddd
a
bb
a
ccc
dddd
v445@445-laptop:~/pingoo$ echo "$m"|sed -n '/bb/,/dddd/p'
bb //début du résultat 1
ccc
dddd //fin résultat 1
bb // début 2
a
dddd //fin 2
bb //début 3
a
ccc
dddd //fin 3
Et donc faire un array de ces trois résultats. Mais à moins que sed ai une fonction pour ne donner que le premier, puis le deuxième, etc… je ne voit pas trop.
Merci pour l’aide !