gaaaaaAab a écrit 1435 commentaires

  • [^] # Re: parser ?

    Posté par  . En réponse au message [expression régulière] détecter un caractère non espace dans une séquence.. Évalué à 2.

    fallait mettre dans programmation.c alors ;)
    et préciser le moteur de regex que tu utilises puisqu'apparement, tu en utilises un.

    Sinon, hors syntaxe particulière, la regex que tu vas chercher, c'est l'inversion de la regex qui matche 10 espaces consécutifs en fait.
  • [^] # Re: parser ?

    Posté par  . En réponse au message [expression régulière] détecter un caractère non espace dans une séquence.. Évalué à 1.

    rha le boulet, je me gave pour bien faire apparaitre les [, et j'oublie d'échapper les < et > ...
    je pensais cat <fichier> | (...), 'videmment ...
  • [^] # Re: parser ?

    Posté par  . En réponse au message [expression régulière] détecter un caractère non espace dans une séquence.. Évalué à 1.

    clair que ça dépend du contexte ...
    Ca te conviendra pas forcément, mais avec les commandes usuelles du shell :
    cat | grep -Ev '^.{4}[[:space:]]{10}' | cut -c 4-14
  • [^] # Re: rechercher/remplacer

    Posté par  . En réponse au message document recapilutatif SED. Évalué à 4.

    oui, il y a bien une histoire d'occurence. Quand g n'est pas là, sed ne traite que la première occurence ... de chaque ligne !
  • [^] # Re: fais bosser ton imagination

    Posté par  . En réponse au message document recapilutatif SED. Évalué à 2.

    youps, désolé, j'ai pas recopié toute la ligne :
    awk 'BEGIN{prev="unset"} /^const\>|^int\>|^temp\>/ {if (prev != $1) print ""; print $0; prev = $1; next} {print}'
  • [^] # Re: fais bosser ton imagination

    Posté par  . En réponse au message document recapilutatif SED. Évalué à 2.

    pas si mal que ça. Au vu des messages que tu as posté ces derniers temps, y a une nette progression déjà :)

    Le problème fondamental, c'est que sed travaille ligne par ligne, et là, tu veux faire quelquechose pour lequel il faut travailler sur plusieurs lignes. Forcément, ça va être compliqué ...

    en repartant de ton exemple dans un commentaire ci dessus, une proposition en awk :
    awk 'BEGIN{prev="unset"} /^const\>|^int\>|^temp\>/ {if (prev != $1) print ""; print $0; next} {print}'

    attention, cette version ne fonctionne que si tes identifiants (int, const ou autre) sont en début de ligne puisque $1 représente le premier élément de la ligne.

    C'est pas le hello world du awk, donc l'opportunité d'apprendre quelques trucs de plus ;)
    man awk pour plus de détails, et pose d'autres questions si tu t'en sors pas !
  • # fais bosser ton imagination

    Posté par  . En réponse au message document recapilutatif SED. Évalué à 2.

    y a tellement de façon d'approcher le problème. Au choix :
    - avec awk (pas trop compliqué, mais moyen performant),
    - en utilisant l'option -c de grep et une habile combinaison de head et de tail dans tous les sens (p-e pas super efficace, mais ça doit être rigolo à écrire =)
    - en encapsulant tes regex dans un langage de script de plus haut nieveau (python, perl, ruby, ...)

    bref, innove ! :-)
  • [^] # Re: sed -i et autres ...

    Posté par  . En réponse au message aide sur un script. Évalué à 2.

    l'option -e de sed, c'est pour faire la v2 de ton script ;-)

    En fait, plutôt que lancer plusieurs sed avec une regex chacun, tu peux lancer un seul sed avec plusieurs regex. L'option -e permet de faire ça, genre :
    sed -e regex1 -e regex2 ... -e regexn

    Possible que sur certaines plate forme, l'option -e soit obligatoire, même quand il y a une seule regex. Je ne sais plus trop, mais j'ai pris l'habitude de le mettre tout le temps maintenant ...
  • # sed -i et autres ...

    Posté par  . En réponse au message aide sur un script. Évalué à 1.

    quelques remarques pour améliorer ton script :
    for file in [^$prefix]*
    do
    echo $file
    done

    fonctionne chez moi ... Bizzare que ça ne passe pas chez toi.

    - Tu peux éventuellement utiliser des trucs spécifiques à bash (moins portable donc ) :
    shopt -s extglob
    for file in !($prefix); do
    echo $file
    done

    man bash pour plus de détails

    - pour éviter tous les fichiers temporaires, tu peux utiliser l'option -i de sed

    - une regex plus simple pour matcher le motif virgule ou virgule + espace est :
    , \? (soit virgule + espace + point d'interrogation echappé). Ensuite, dans ton motif de substitution, tu n'as plus besoin d'échapper les caractère
    's/, \?/, /g' doit suffire. Les motifs \< et \> ne sont pas utiles ici, puisque l'espace et la virgule sont déjà des délimiteurs de mot.

    - pour rajouter END à la fin, le mieux, c'est encore :
    echo $end >> $file
    (simple is beautiful ;)
  • # heu ...

    Posté par  . En réponse au message sed et caractères spéciaux. Évalué à 4.

    sed -e 's/\/\//#/g' fichier ça doit le faire.
    Sinon, on l'oublie souvent (voire on le sait pas), mais on peut utiliser n'importe quel caractère comme séparateur pour sed, genre '~'
    du coup, sed -e 's~//~#~g' fichier, ça le fait aussi

    sed, c'est dien
    --> []
  • [^] # Re: grep

    Posté par  . En réponse au message condition et script shell. Évalué à 2.

    et si tu en as encore plus beaucoup, l'option -f de grep est ton amie aussi !
  • [^] # Re: stty columns XX

    Posté par  . En réponse au message Terminal too wide. Évalué à 2.

    ouaip, ça le fait aussi. merci pour le tip =)
  • # changer vi

    Posté par  . En réponse au message Terminal too wide. Évalué à 6.

    parce qu'ici, j'ai le même souci avec un vi sous Solaris, tandis que vim sur la même machine se comporte très bien.
  • [^] # Re: question de contrôle ...

    Posté par  . En réponse au message trouver un caractère "nouvelle page" avec grep. Évalué à 2.

    ah voui, je m'égare, mais vim, c'est trop terrible :-)

    en shell, pareil je pense. non ?
  • [^] # Re: question de contrôle ...

    Posté par  . En réponse au message trouver un caractère "nouvelle page" avec grep. Évalué à 1.

    en demandant "null byte vim" à google, je tombe sur ça :
    Ctrl-V Ctrl-J

    cf : http://blog.robfelty.com/category/perl/
  • [^] # Re: question de contrôle ...

    Posté par  . En réponse au message trouver un caractère "nouvelle page" avec grep. Évalué à 2.

    ah voui, c'est des 'l' et des 'v' minuscules ... comme ils sont affichés en majuscule à l'écran, je me fait tout le temps avoir quand je l'explique par écrit (mais jamais que je le tape, ouf ;-)
  • # question de contrôle ...

    Posté par  . En réponse au message trouver un caractère "nouvelle page" avec grep. Évalué à 6.

    question con : comment tu saisis ton '^L' ?

    si tu tapes le caractère '^' puis le caractère L, ça ne va pas marcher. Il faut faire :
    Ctrl + V puis Ctrl + L

    ça aide ?
  • # ordre

    Posté par  . En réponse au message Makefile et petit soucis de liens. Évalué à 4.

    Si je ne dis pas de bétise, l'éditeur de lien fait une seule passe et jette toutes les libs dont il n'a rencontré aucun symbole.
    dans ton édition de lien, essaie de mettre tes .o en premier, et les libs ensuite et tiens nous au courant !
  • # [AFUL] groupe détaxe

    Posté par  . En réponse au message un ordinateur portable avec linux ?. Évalué à 3.

    question légitime. Pleins d'infos là :

    http://www.aful.org/wikis/detaxe/PageAccueil

    sinon, je voulais, comme toi, un portable sans OS. Pas trouvé rue montgallet. Par contre, Surcouf assemble des portables sans OS. C'est pas forcément le meilleur rapport qualité/prix, je peux pas dire, puisque mon critère principal, c'est que je voulais pas de Windows ... :D
    en tout cas, avec le prix d'une licence wIndows en moins, ça m'a paru correct :)
  • [^] # Re: oui, il peut

    Posté par  . En réponse au message Grep -v d'une liste. Évalué à 1.

    je te plussoie tout ce que je peux (de 1 donc ;-)
  • [^] # Re: oui, il peut

    Posté par  . En réponse au message Grep -v d'une liste. Évalué à 1.

    oui, on peut aussi faire du grep | grep | grep ...
    par contre, le cat ne sert à rien. D'ailleurs, globalement, tout usage de cat dans un script ou dans une succession de commande est probablement inutile :-)

    sinon, tu peux aussi demander à grep de lire les motifs à partir d'un fichier.
    Je viens de tester, et les options -f et -v sont compatibles.
  • # oui, il peut

    Posté par  . En réponse au message Grep -v d'une liste. Évalué à 2.

    grep -v 'mot1\|mot2\|mot3' fichier1, ça doit le faire

    on ne peut pas passer plusieurs options -v à grep, il faut donc se débrouiller pour construire *la* regex qui gère d'un seul coup tous les motifs que tu veux exclure.
  • [^] # Re: 1

    Posté par  . En réponse au message Grep qui rend 2 lignes en reponse. Évalué à 1.

    tant qu'on y est, autant utiliser cut plutôt que awk :-)
  • [^] # Re: uname ?

    Posté par  . En réponse au message Comment reconnaitre sa distribution ?. Évalué à 5.

    Je ne sais pas dans quelle mesure c'est standardisée, mais /etc/issue peut au moins servir à identifier des fedora/redhat et des ubuntu.
  • # ls

    Posté par  . En réponse au message Chercher les liens symboliques brisés. Évalué à 1.

    ls, c'est quand même un super couteau suisse :)

    cf l'option -L

    $ ls -l
    total 4
    drwxrwxr-x 2 gab gab 4096 May 11 2007 dir
    -rw-rw-r-- 1 gab gab 0 May 11 2007 file
    lrwxrwxrwx 1 gab gab 4 May 11 2007 lien_casse -> yapa
    lrwxrwxrwx 1 gab gab 4 May 11 2007 lien_dir -> dir/
    lrwxrwxrwx 1 gab gab 4 May 11 2007 lien_file -> file
    $ ls -L lien_file >/dev/null 2>&1
    $ echo $?
    0
    $ ls -L lien_dir >/dev/null 2>&1
    $ echo $?
    0
    $ ls -L lien_casse >/dev/null 2>&1
    $ echo $?
    2