J'ai un serveur web dont le fichier de configuration est abondament
commenté.
Maintenant que j'ai compris toutes les options, je souhaiterai faire
mumuse avec pour peauffiner.
Il serait bon que je puisse naviguer dans ce fichier le plus rapidement
possible et avoir une vue globale la plus confortable.
Les commentaires me sont maintenant inutiles. Au pire, je peux me baser
sur un fichier sample à coté.
Les commentaires sont les lignes qui commencent par "#".
Si je fais un
sed 's,#.*,,g' /home/mihamina/web/etc/zope.conf | sed '/^$/d'
J'ai eu des lignes blanches à la place des commentaires. C'est bien, mais
c'était trop aéré. Des lignes blanches, c'est encore moins utile que
des commentaires... J'ai un peu cherché, c'est comme ça que j'ai trouvé
un moyen de remplacer les commentaires par "vraiment rien".
Y-a-t-il mieux?
PS: J'utilise ZSH au cas ou ça peut me faciliter encore plus la tache...
Merci d'avance.
--
Mirroir de logiciels libres http://www.etud-orleans.fr
Développement de logiciels libres http://aspo.rktmb.org/activites/developpement
Infogerance de serveur dédié http://aspo.rktmb.org/activites/infogerance
(En louant les services de l'ASPO vous luttez contre la fracture numerique)
Le 06-06-2005, Rakotomandimby (R12y) Mihamina a écrit :
Bonjour
bonjour,
J'ai un serveur web dont le fichier de configuration est abondament commenté. [...]
Si je fais un
sed 's,#.*,,g' /home/mihamina/web/etc/zope.conf | sed '/^$/d' [...]
Y-a-t-il mieux?
sed -e '/^[[:space:]]*($|#)/d' <zope_blabla.conf >zope.conf
Merci d'avance.
de rien, -- Jacques L'helgoualc'h
TiChou
Dans le message <news:, *Rakotomandimby (R12y) Mihamina* tapota sur f.c.o.unix :
Bonjour
Salut,
[suppression des commentaires]
sed 's,#.*,,g' /home/mihamina/web/etc/zope.conf | sed '/^$/d'
J'ai eu des lignes blanches à la place des commentaires. C'est bien, mais c'était trop aéré. Des lignes blanches, c'est encore moins utile que des commentaires... J'ai un peu cherché, c'est comme ça que j'ai trouvé un moyen de remplacer les commentaires par "vraiment rien".
Y-a-t-il mieux?
$ sed '/^(#|$)/d' fichier
ou
$ grep -v '^(#|$)' fichier
Merci d'avance.
De rien.
-- TiChou
Dans le message <news:pan.2005.06.06.19.00.29.733193@etu.univ-orleans.fr>,
*Rakotomandimby (R12y) Mihamina* tapota sur f.c.o.unix :
Bonjour
Salut,
[suppression des commentaires]
sed 's,#.*,,g' /home/mihamina/web/etc/zope.conf | sed '/^$/d'
J'ai eu des lignes blanches à la place des commentaires. C'est bien, mais
c'était trop aéré. Des lignes blanches, c'est encore moins utile que
des commentaires... J'ai un peu cherché, c'est comme ça que j'ai trouvé
un moyen de remplacer les commentaires par "vraiment rien".
Dans le message <news:, *Rakotomandimby (R12y) Mihamina* tapota sur f.c.o.unix :
Bonjour
Salut,
[suppression des commentaires]
sed 's,#.*,,g' /home/mihamina/web/etc/zope.conf | sed '/^$/d'
J'ai eu des lignes blanches à la place des commentaires. C'est bien, mais c'était trop aéré. Des lignes blanches, c'est encore moins utile que des commentaires... J'ai un peu cherché, c'est comme ça que j'ai trouvé un moyen de remplacer les commentaires par "vraiment rien".
Y-a-t-il mieux?
$ sed '/^(#|$)/d' fichier
ou
$ grep -v '^(#|$)' fichier
Merci d'avance.
De rien.
-- TiChou
Jacques L'helgoualc'h
Le 06-06-2005, Rakotomandimby (R12y) Mihamina a écrit :
Bonjour
bonjour,
J'ai un serveur web dont le fichier de configuration est abondament commenté. [...]
Si je fais un
sed 's,#.*,,g' /home/mihamina/web/etc/zope.conf | sed '/^$/d' [...]
Y-a-t-il mieux?
sed -e '/^[[:space:]]*($|#)/d' <zope_blabla.conf >zope.conf
Ton s,#.*,,g pourrait couper un # entre quotes, par exemple (et le g est inutile).
Merci d'avance.
de rien, -- Jacques L'helgoualc'h
Le 06-06-2005, Rakotomandimby (R12y) Mihamina a écrit :
Bonjour
bonjour,
J'ai un serveur web dont le fichier de configuration est abondament
commenté.
[...]
Si je fais un
sed 's,#.*,,g' /home/mihamina/web/etc/zope.conf | sed '/^$/d'
[...]
Y-a-t-il mieux?
sed -e '/^[[:space:]]*($|#)/d' <zope_blabla.conf >zope.conf
Ton s,#.*,,g pourrait couper un # entre quotes, par exemple (et le g est
inutile).
Le 06-06-2005, Rakotomandimby (R12y) Mihamina a écrit :
Bonjour
bonjour,
J'ai un serveur web dont le fichier de configuration est abondament commenté. [...]
Si je fais un
sed 's,#.*,,g' /home/mihamina/web/etc/zope.conf | sed '/^$/d' [...]
Y-a-t-il mieux?
sed -e '/^[[:space:]]*($|#)/d' <zope_blabla.conf >zope.conf
Ton s,#.*,,g pourrait couper un # entre quotes, par exemple (et le g est inutile).
Merci d'avance.
de rien, -- Jacques L'helgoualc'h
Alain
On Mon, 06 Jun 2005 21:00:30 +0200 Rakotomandimby (R12y) Mihamina wrote:
[...] |> Les commentaires me sont maintenant inutiles. Au pire, je peux me baser |> sur un fichier sample à coté. |> |> Les commentaires sont les lignes qui commencent par "#". |> |> Si je fais un |> |> sed 's,#.*,,g' /home/mihamina/web/etc/zope.conf | sed '/^$/d'
sed '/^#/d' /home/mihamina/web/etc/zope.conf
-- Alain
On Mon, 06 Jun 2005 21:00:30 +0200
Rakotomandimby (R12y) Mihamina wrote:
[...]
|> Les commentaires me sont maintenant inutiles. Au pire, je peux me baser
|> sur un fichier sample à coté.
|>
|> Les commentaires sont les lignes qui commencent par "#".
|>
|> Si je fais un
|>
|> sed 's,#.*,,g' /home/mihamina/web/etc/zope.conf | sed '/^$/d'
On Mon, 06 Jun 2005 21:00:30 +0200 Rakotomandimby (R12y) Mihamina wrote:
[...] |> Les commentaires me sont maintenant inutiles. Au pire, je peux me baser |> sur un fichier sample à coté. |> |> Les commentaires sont les lignes qui commencent par "#". |> |> Si je fais un |> |> sed 's,#.*,,g' /home/mihamina/web/etc/zope.conf | sed '/^$/d'
sed '/^#/d' /home/mihamina/web/etc/zope.conf
-- Alain
Benoit Izac
Bonjour,
le 06/06/2005 à 21:00, Rakotomandimby Mihamina a écrit dans le message :
Les commentaires sont les lignes qui commencent par "#".
Si je fais un
sed 's,#.*,,g' /home/mihamina/web/etc/zope.conf | sed '/^$/d'
Si tu veux le même comportement (supprimer tous les commentaires, même ceux en bout de ligne) : sed -e 's/[[:space:]]*#.*$//' fichier | grep -v '^[[:space:]]*$' ou perl -ne 's/s*#.*//; print if !/^s*$/' fichier
Pour simplement supprimer les lignes vides et celles où il n'y a que des commentaires : grep -vE '^[[:space:]]*(#|$)' fichier
Si tu ne veux pas utiliser les EREs (Extended Regular Expressions), tu dois le faire en 2 fois car il n'y a pas de ``|'' en BRE (Basic Regular Expressions) : grep -v '^[[:space:]]*#' fichier | grep -v '^[[:space:]]*$'
-- Benoit Izac
Bonjour,
le 06/06/2005 à 21:00, Rakotomandimby Mihamina a écrit
dans le message <pan.2005.06.06.19.00.29.733193@etu.univ-orleans.fr> :
Les commentaires sont les lignes qui commencent par "#".
Si je fais un
sed 's,#.*,,g' /home/mihamina/web/etc/zope.conf | sed '/^$/d'
Si tu veux le même comportement (supprimer tous les commentaires, même
ceux en bout de ligne) :
sed -e 's/[[:space:]]*#.*$//' fichier | grep -v '^[[:space:]]*$'
ou
perl -ne 's/s*#.*//; print if !/^s*$/' fichier
Pour simplement supprimer les lignes vides et celles où il n'y a que des
commentaires :
grep -vE '^[[:space:]]*(#|$)' fichier
Si tu ne veux pas utiliser les EREs (Extended Regular Expressions), tu
dois le faire en 2 fois car il n'y a pas de ``|'' en BRE (Basic Regular
Expressions) :
grep -v '^[[:space:]]*#' fichier | grep -v '^[[:space:]]*$'
le 06/06/2005 à 21:00, Rakotomandimby Mihamina a écrit dans le message :
Les commentaires sont les lignes qui commencent par "#".
Si je fais un
sed 's,#.*,,g' /home/mihamina/web/etc/zope.conf | sed '/^$/d'
Si tu veux le même comportement (supprimer tous les commentaires, même ceux en bout de ligne) : sed -e 's/[[:space:]]*#.*$//' fichier | grep -v '^[[:space:]]*$' ou perl -ne 's/s*#.*//; print if !/^s*$/' fichier
Pour simplement supprimer les lignes vides et celles où il n'y a que des commentaires : grep -vE '^[[:space:]]*(#|$)' fichier
Si tu ne veux pas utiliser les EREs (Extended Regular Expressions), tu dois le faire en 2 fois car il n'y a pas de ``|'' en BRE (Basic Regular Expressions) : grep -v '^[[:space:]]*#' fichier | grep -v '^[[:space:]]*$'
-- Benoit Izac
Jacques L'helgoualc'h
Le 06-06-2005, Benoit Izac a écrit :
Bonjour,
bonjour,
[...]
Si tu ne veux pas utiliser les EREs (Extended Regular Expressions), tu dois le faire en 2 fois car il n'y a pas de ``|'' en BRE (Basic Regular Expressions) : grep -v '^[[:space:]]*#' fichier | grep -v '^[[:space:]]*$'
ça dépend du grep, alors :
$ echo 'toto tata tutu' | grep -v 'a|u' toto $ grep --version grep (grep de GNU) 2.5.1
Dans l'autre sens, si taper des provoque des crampes, Gnu sed offre l'option -r pour écrire (A|B) au lieu de (A|B) ... -- Jacques L'helgoualc'h
Le 06-06-2005, Benoit Izac a écrit :
Bonjour,
bonjour,
[...]
Si tu ne veux pas utiliser les EREs (Extended Regular Expressions), tu
dois le faire en 2 fois car il n'y a pas de ``|'' en BRE (Basic Regular
Expressions) :
grep -v '^[[:space:]]*#' fichier | grep -v '^[[:space:]]*$'
ça dépend du grep, alors :
$ echo 'toto
tata
tutu' | grep -v 'a|u'
toto
$ grep --version
grep (grep de GNU) 2.5.1
Dans l'autre sens, si taper des provoque des crampes, Gnu sed offre
l'option -r pour écrire (A|B) au lieu de (A|B) ...
--
Jacques L'helgoualc'h
Si tu ne veux pas utiliser les EREs (Extended Regular Expressions), tu dois le faire en 2 fois car il n'y a pas de ``|'' en BRE (Basic Regular Expressions) : grep -v '^[[:space:]]*#' fichier | grep -v '^[[:space:]]*$'
ça dépend du grep, alors :
$ echo 'toto tata tutu' | grep -v 'a|u' toto $ grep --version grep (grep de GNU) 2.5.1
Dans l'autre sens, si taper des provoque des crampes, Gnu sed offre l'option -r pour écrire (A|B) au lieu de (A|B) ... -- Jacques L'helgoualc'h
Antoine Leca
En <news:slrndaap0d.1l7.lhh+, Jacques L'helgoualc'h va escriure:
il n'y a pas de ``|'' en BRE (Basic Regular Expressions) :
ça dépend du grep, alors :
| dans les expressions régulières « à la ed/grep/sed » est une extension GNU ; je ne sais pas si cela se marrie bien avec les flashbacks (1 .. 9), quand tu as des sous-expressions des deux côtés du |.
Cf. par exemple http://www.freebsd.org/cgi/man.cgi?query=re_format&manpath=FreeBSD+5.4-RELEASE (à la fin, à propos des e.r. « obsolètes »).
Dans l'autre sens, si taper des provoque des crampes, Gnu sed offre l'option -r pour écrire (A|B) au lieu de (A|B) ...
On trouve aussi -E (FreeBSD).
Antoine
En <news:slrndaap0d.1l7.lhh+no_spam@ulysse.maison>,
Jacques L'helgoualc'h va escriure:
il n'y a pas de ``|'' en BRE (Basic Regular Expressions) :
ça dépend du grep, alors :
| dans les expressions régulières « à la ed/grep/sed » est une extension
GNU ; je ne sais pas si cela se marrie bien avec les flashbacks (1 .. 9),
quand tu as des sous-expressions des deux côtés du |.
Cf. par exemple
http://www.freebsd.org/cgi/man.cgi?query=re_format&manpath=FreeBSD+5.4-RELEASE
(à la fin, à propos des e.r. « obsolètes »).
Dans l'autre sens, si taper des provoque des crampes, Gnu sed
offre l'option -r pour écrire (A|B) au lieu de (A|B) ...
En <news:slrndaap0d.1l7.lhh+, Jacques L'helgoualc'h va escriure:
il n'y a pas de ``|'' en BRE (Basic Regular Expressions) :
ça dépend du grep, alors :
| dans les expressions régulières « à la ed/grep/sed » est une extension GNU ; je ne sais pas si cela se marrie bien avec les flashbacks (1 .. 9), quand tu as des sous-expressions des deux côtés du |.
Cf. par exemple http://www.freebsd.org/cgi/man.cgi?query=re_format&manpath=FreeBSD+5.4-RELEASE (à la fin, à propos des e.r. « obsolètes »).
Dans l'autre sens, si taper des provoque des crampes, Gnu sed offre l'option -r pour écrire (A|B) au lieu de (A|B) ...
On trouve aussi -E (FreeBSD).
Antoine
Jacques L'helgoualc'h
Le 07-06-2005, Antoine Leca a écrit :
En <news:slrndaap0d.1l7.lhh+, Jacques L'helgoualc'h va escriure:
il n'y a pas de ``|'' en BRE (Basic Regular Expressions) :
ça dépend du grep, alors :
| dans les expressions régulières « à la ed/grep/sed » est une extension GNU ; je ne sais pas si cela se marrie bien avec les flashbacks (1 .. 9), quand tu as des sous-expressions des deux côtés du |.
Cf. par exemple http://www.freebsd.org/cgi/man.cgi?query=re_format&manpath=FreeBSD+5.4-RELEASE (à la fin, à propos des e.r. « obsolètes »).
Merci.
Dans l'autre sens, si taper des provoque des crampes, Gnu sed offre l'option -r pour écrire (A|B) au lieu de (A|B) ...
On trouve aussi -E (FreeBSD).
au moins c'est cohérent avec Grep ... -- Jacques L'helgoualc'h
Le 07-06-2005, Antoine Leca <root@localhost.invalid> a écrit :
En <news:slrndaap0d.1l7.lhh+no_spam@ulysse.maison>,
Jacques L'helgoualc'h va escriure:
il n'y a pas de ``|'' en BRE (Basic Regular Expressions) :
ça dépend du grep, alors :
| dans les expressions régulières « à la ed/grep/sed » est une extension
GNU ; je ne sais pas si cela se marrie bien avec les flashbacks (1 .. 9),
quand tu as des sous-expressions des deux côtés du |.
En <news:slrndaap0d.1l7.lhh+, Jacques L'helgoualc'h va escriure:
il n'y a pas de ``|'' en BRE (Basic Regular Expressions) :
ça dépend du grep, alors :
| dans les expressions régulières « à la ed/grep/sed » est une extension GNU ; je ne sais pas si cela se marrie bien avec les flashbacks (1 .. 9), quand tu as des sous-expressions des deux côtés du |.
Cf. par exemple http://www.freebsd.org/cgi/man.cgi?query=re_format&manpath=FreeBSD+5.4-RELEASE (à la fin, à propos des e.r. « obsolètes »).
Merci.
Dans l'autre sens, si taper des provoque des crampes, Gnu sed offre l'option -r pour écrire (A|B) au lieu de (A|B) ...
On trouve aussi -E (FreeBSD).
au moins c'est cohérent avec Grep ... -- Jacques L'helgoualc'h
Antoine Leca
En <news:slrndab9k4.4bl.lhh+, Jacques L'helgoualc'h va escriure:
| dans les expressions régulières « à la ed/grep/sed » est une extension GNU ; je ne sais pas si cela se marrie bien avec les flashbacks (1 .. 9), quand tu as des sous-expressions des deux côtés du |.
grep ".(t(.)t|T(.)t|T(.)T)3." ou son équivalent sed "/.(t(.)t|T(.)t|T(.)T)3./s//& 2:2 3:3/"
Mais cela revient au même: on s'arrache les cheveux à comprendre que la référence 2 est "vide" (parce que non "matchée"), alors que la 3 ne l'est pas. On pourrait croire que 2 puisse toujours représenter la seconde chaîne matchée... mais non, pour cela il faudrait écrire
grep ".(t(.)t|T(.)t|T(.)T)(2|3|4)."
(et je sais parfaitement que cet exemple est idiot ;-)).
En passant, me semble être une autre extension GNU, je ne connaissais pas. J'utilisais plutôt & dans le contexte ci-dessus (sed).
Antoine
En <news:slrndab9k4.4bl.lhh+no_spam@ulysse.maison>,
Jacques L'helgoualc'h va escriure:
| dans les expressions régulières « à la ed/grep/sed » est une
extension GNU ; je ne sais pas si cela se marrie bien avec les
flashbacks (1 .. 9), quand tu as des sous-expressions des
deux côtés du |.
grep ".(t(.)t|T(.)t|T(.)T)3."
ou son équivalent
sed "/.(t(.)t|T(.)t|T(.)T)3./s//& 2:2 3:3/"
Mais cela revient au même: on s'arrache les cheveux à comprendre que la
référence 2 est "vide" (parce que non "matchée"), alors que la 3 ne l'est
pas. On pourrait croire que 2 puisse toujours représenter la seconde chaîne
matchée... mais non, pour cela il faudrait écrire
grep ".(t(.)t|T(.)t|T(.)T)(2|3|4)."
(et je sais parfaitement que cet exemple est idiot ;-)).
En passant, me semble être une autre extension GNU, je ne connaissais
pas. J'utilisais plutôt & dans le contexte ci-dessus (sed).
En <news:slrndab9k4.4bl.lhh+, Jacques L'helgoualc'h va escriure:
| dans les expressions régulières « à la ed/grep/sed » est une extension GNU ; je ne sais pas si cela se marrie bien avec les flashbacks (1 .. 9), quand tu as des sous-expressions des deux côtés du |.
grep ".(t(.)t|T(.)t|T(.)T)3." ou son équivalent sed "/.(t(.)t|T(.)t|T(.)T)3./s//& 2:2 3:3/"
Mais cela revient au même: on s'arrache les cheveux à comprendre que la référence 2 est "vide" (parce que non "matchée"), alors que la 3 ne l'est pas. On pourrait croire que 2 puisse toujours représenter la seconde chaîne matchée... mais non, pour cela il faudrait écrire
grep ".(t(.)t|T(.)t|T(.)T)(2|3|4)."
(et je sais parfaitement que cet exemple est idiot ;-)).
En passant, me semble être une autre extension GNU, je ne connaissais pas. J'utilisais plutôt & dans le contexte ci-dessus (sed).
Antoine
Jacques L'helgoualc'h
Le 07-06-2005, Antoine Leca a écrit :
[...] J'avais pensé à des trucs comme
grep ".(t(.)t|T(.)t|T(.)T)3." ou son équivalent sed "/.(t(.)t|T(.)t|T(.)T)3./s//& 2:2 3:3/"
Mais cela revient au même: on s'arrache les cheveux à comprendre que la référence 2 est "vide" (parce que non "matchée"), alors que la 3 ne l'est pas. On pourrait croire que 2 puisse toujours représenter la seconde chaîne matchée...
The REPLACEMENT can contain `N' (N being a number from 1 to 9, inclusive) references, which refer to the portion of the match which is contained between the Nth `(' and its matching `)'.
C'est la 2ème ouvrante à partir de la gauche ... matchée ou pas.
mais non, pour cela il faudrait écrire
grep ".(t(.)t|T(.)t|T(.)T)(2|3|4)."
(et je sais parfaitement que cet exemple est idiot ;-)).
En passant, me semble être une autre extension GNU, je ne connaissais pas. J'utilisais plutôt & dans le contexte ci-dessus (sed).
Bin oui, elle semble même absente de info sed, cf. ci-dessus. -- Jacques L'helgoualc'h
Le 07-06-2005, Antoine Leca a écrit :
[...]
J'avais pensé à des trucs comme
grep ".(t(.)t|T(.)t|T(.)T)3."
ou son équivalent
sed "/.(t(.)t|T(.)t|T(.)T)3./s//& 2:2 3:3/"
Mais cela revient au même: on s'arrache les cheveux à comprendre que la
référence 2 est "vide" (parce que non "matchée"), alors que la 3 ne l'est
pas. On pourrait croire que 2 puisse toujours représenter la seconde chaîne
matchée...
The REPLACEMENT can contain `N' (N being a number from 1 to 9,
inclusive) references, which refer to the portion of the match which is
contained between the Nth `(' and its matching `)'.
C'est la 2ème ouvrante à partir de la gauche ... matchée ou pas.
mais non, pour cela il faudrait écrire
grep ".(t(.)t|T(.)t|T(.)T)(2|3|4)."
(et je sais parfaitement que cet exemple est idiot ;-)).
En passant, me semble être une autre extension GNU, je ne connaissais
pas. J'utilisais plutôt & dans le contexte ci-dessus (sed).
Bin oui, elle semble même absente de info sed, cf. ci-dessus.
--
Jacques L'helgoualc'h
grep ".(t(.)t|T(.)t|T(.)T)3." ou son équivalent sed "/.(t(.)t|T(.)t|T(.)T)3./s//& 2:2 3:3/"
Mais cela revient au même: on s'arrache les cheveux à comprendre que la référence 2 est "vide" (parce que non "matchée"), alors que la 3 ne l'est pas. On pourrait croire que 2 puisse toujours représenter la seconde chaîne matchée...
The REPLACEMENT can contain `N' (N being a number from 1 to 9, inclusive) references, which refer to the portion of the match which is contained between the Nth `(' and its matching `)'.
C'est la 2ème ouvrante à partir de la gauche ... matchée ou pas.
mais non, pour cela il faudrait écrire
grep ".(t(.)t|T(.)t|T(.)T)(2|3|4)."
(et je sais parfaitement que cet exemple est idiot ;-)).
En passant, me semble être une autre extension GNU, je ne connaissais pas. J'utilisais plutôt & dans le contexte ci-dessus (sed).
Bin oui, elle semble même absente de info sed, cf. ci-dessus. -- Jacques L'helgoualc'h