OVH Cloud OVH Cloud

[sed] pb un peu au dessus de mes moyens

14 réponses
Avatar
Marc Boyer
J'aimerais avec sed transformer des choses du genre

- blabla, blabla
blabla, blabla
- blabla, blabla
blabla, blabla

En
\begin{itemize}
\item blabla, blabla
blabla, blabla
\item blabla, blabla
blabla, blabla
\end{itemize}

Pour le moment, j'arrive à tout faire, sauf le \begin{itemize}, avec
/^[ ]*-/,/^[ ]*$/ {
s/-/\\item/
s/^[ ]*$/\\end{itemize}/
}

Une idée ?

Marc Boyer
--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...

10 réponses

1 2
Avatar
DINH Viêt Hoà

J'aimerais avec sed transformer des choses du genre

- blabla, blabla
blabla, blabla
- blabla, blabla
blabla, blabla

En
begin{itemize}
item blabla, blabla
blabla, blabla
item blabla, blabla
blabla, blabla
end{itemize}

Pour le moment, j'arrive à tout faire, sauf le begin{itemize}, avec
/^[ ]*-/,/^[ ]*$/ {
s/-/item/
s/^[ ]*$/end{itemize}/
}

Une idée ?


j'aurai fait ça en perl.

--
DINH V. Hoa,

"Every program attempts to expand until it can read mail.
Those programs which cannot so expand are replaced by ones which can."
-- jwz

Avatar
Marc Boyer
DINH Viêt Hoà wrote:
Une idée ?


j'aurai fait ça en perl.


Un jour je me mettrais à Perl, promis.

Marc Boyer
--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...


Avatar
Stephane Chazelas
2004-09-14, 13:18(+00), Marc Boyer:
J'aimerais avec sed transformer des choses du genre

- blabla, blabla
blabla, blabla
- blabla, blabla
blabla, blabla

En
begin{itemize}
item blabla, blabla
blabla, blabla
item blabla, blabla
blabla, blabla
end{itemize}

Pour le moment, j'arrive à tout faire, sauf le begin{itemize}, avec
/^[ ]*-/,/^[ ]*$/ {
s/-/item/
s/^[ ]*$/end{itemize}/
}
[...]


Et sur quelle condition veux-tu que les begin end soient
inseres ?

Note ce que tu veux faire a deja ete fait maintes fois.

Cherche: text2latex text2tex ascii2tex txt2latex txt2tex...

--
Stephane

Avatar
Marc Boyer
Stephane Chazelas wrote:
Pour le moment, j'arrive à tout faire, sauf le begin{itemize}, avec
/^[ ]*-/,/^[ ]*$/ {
s/-/item/
s/^[ ]*$/end{itemize}/
}
[...]


Et sur quelle condition veux-tu que les begin end soient
inseres ?


Le begin arrive avec le premier -
Le end arrive avec la ligne vide.

Note ce que tu veux faire a deja ete fait maintes fois.

Cherche: text2latex text2tex ascii2tex txt2latex txt2tex...


Merci du pointeur, mais sed est présent sur toutes les
machines que j'utilise au jour le jour, mais aucun de
ceux là ne semble l'être...

Marc Boyer
--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...


Avatar
Stephane Chazelas
2004-09-14, 13:43(+00), Marc Boyer:
Stephane Chazelas wrote:
Pour le moment, j'arrive à tout faire, sauf le begin{itemize}, avec
/^[ ]*-/,/^[ ]*$/ {
s/-/item/
s/^[ ]*$/end{itemize}/
}
[...]


Et sur quelle condition veux-tu que les begin end soient
inseres ?


Le begin arrive avec le premier -
Le end arrive avec la ligne vide.



awk '/^[[:blank:]]*-/{
print "begin{itemize}"
do {
sub(/^[[:blank:]]*-/, "item ")
print
} while ((getline) > 0 && $0 ~ /[^[:blank:]]/)
print "end{itemize}"}
{print}'

Tu peux faire la meme chose en sed, mais ce sera moins lisible.


Note ce que tu veux faire a deja ete fait maintes fois.

Cherche: text2latex text2tex ascii2tex txt2latex txt2tex...


Merci du pointeur, mais sed est présent sur toutes les
machines que j'utilise au jour le jour, mais aucun de
ceux là ne semble l'être...
[...]


Mais le script que tu es en train d'ecrire n'est pas present
non-plus.

--
Stephane



Avatar
Marc Boyer
Stephane Chazelas wrote:
2004-09-14, 13:43(+00), Marc Boyer:
Stephane Chazelas wrote:

Le begin arrive avec le premier -
Le end arrive avec la ligne vide.


awk '/^[[:blank:]]*-/{
print "begin{itemize}"
do {
sub(/^[[:blank:]]*-/, "item ")
print
} while ((getline) > 0 && $0 ~ /[^[:blank:]]/)
print "end{itemize}"}
{print}'

Tu peux faire la meme chose en sed, mais ce sera moins lisible.


Donc, quelque part, je me sens moins niais de ne pas l'avoir
trouvé tout seul.

Note ce que tu veux faire a deja ete fait maintes fois.

Cherche: text2latex text2tex ascii2tex txt2latex txt2tex...


Merci du pointeur, mais sed est présent sur toutes les
machines que j'utilise au jour le jour, mais aucun de
ceux là ne semble l'être...
[...]


Mais le script que tu es en train d'ecrire n'est pas present
non-plus.


Ben si, dans le sens où je le trimbale avec le texte et le
makefile, et qu'il fait 465 octets avec les commentaires.
Ceci dit, je viens de trouver txt2tex, et c'est un script
"stand-alone", heureusement (70Ko quand même la bête).

C'est toujours la même chose, pour un besoin ponctuel,
est-ce que je bricole ou est-ce que j'installe et j'essaye
de comprendre et je compare les 3-4 outils qui semblent
correspondre à mon besoin.
J'ai souvent perdu beaucoup de temps à tenter d'installer
des trucs...

Ceci dit, oui, dans ce cas précis, txt2tex semble
une partie de la solution.

Marc Boyer
--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...



Avatar
Stephane Le Men
Marc Boyer wrote:

Pour le moment, j'arrive à tout faire, sauf le begin{itemize}, avec
/^[ ]*-/,/^[ ]*$/ {
s/-/item/
s/^[ ]*$/end{itemize}/
}

Une idée ?


mon sed (*) sait compter ses lignes :

/^[ ]*-/,/^[ ]*$/ {
s/-/item/
s/^[ ]*$/end{itemize}/
}
1 {
s/^/begin{itemize}
/
}


*) GNU sed version 3.02

Avatar
cedric
Quelqu'un donne la réponse avec "ed" ?

J'aimerais me mettre à ed mais il me manque encore un peut de volonté...
Avatar
Stephane Chazelas
2004-09-14, 14:28(+00), Stephane Le Men:
[...]
mon sed (*) sait compter ses lignes :


Salut Stephane,

tous les sed savent compter leurs lignes.

[...]
1 {
s/^/begin{itemize}
/
}
[...]


L'OP voulait le begin{itemize} avant le premier "-", pas
forcement au debut du fichier, il peut y avoir plusieurs itemize
dans le fichier, j'imagine.

sed '
/^[[:blank:]]*-/{
i
begin{itemize}
:1
s/^[[:blank:]]*-[[:blank:]]*/item /
$!{
n
/[^[:blank:]]/b1
}
a
end{itemize}
/[^[:blank:]]/!d
}'

Exactement le meme algo que awk, en moins lisible.

--
Stephane

Avatar
Marc Boyer
Stephane Chazelas wrote:
2004-09-14, 14:28(+00), Stephane Le Men:
L'OP voulait le begin{itemize} avant le premier "-", pas
forcement au debut du fichier, il peut y avoir plusieurs itemize
dans le fichier, j'imagine.


Exactement

sed '
/^[[:blank:]]*-/{
i
begin{itemize}
:1
s/^[[:blank:]]*-[[:blank:]]*/item /
$!{
n


Je cherchais un truc dans le genre, mais
j'étais parti faire des N associés à des G...
Sans grand résultat.

/[^[:blank:]]/b1
}
a
end{itemize}
/[^[:blank:]]/!d
}'


Merci.

Exactement le meme algo que awk, en moins lisible.


OK, je vais me mettre à perl ;-)

Marc Boyer
--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...

1 2