Sed : filtrer par un numéro de colonne

Résolu
tonticoeur -  
 tonticoeur -
Bonjour,

Je suis en présence de fichiers de log dont chaque ligne fait strictement 132 caractères.
Je souhaite afficher les lignes de ces fichiers qui ont le caractère 4 en position 81 à l'aide de l'outil SED.

J'ai chercher un peu partout sur le net mais sans résultat. Je vous soumet donc aujourd'hui cette question.

Merci de votre aide.

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    sed n'est ps fait pour ça, il te faut voir du côté de "awk", beaucoup plus adapté à ce genre de manip...

    jp@MDK:~/tmpfs ssh$ cat plop
    abcdefghijkl
    abcdefghdjkl
    abcdefghijkl
    abcdefghfjkl
    abcdefghijkl
    abcdefghfjkl
    abcdefghdjkl
    abcdefghijkl
    
    jp@MDK:~/tmpfs ssh$ awk 'substr($0,4,1) == substr($0,9,1) {print $0}' plop
    abcdefghdjkl
    abcdefghdjkl
    
    jp@MDK:~/tmpfs ssh$

    Remplace "9,1" par "81,1".
    ;-))
    0
  2. lami20j
     
    Salut,

    Il n'y a pas des références arrièreres pour sed ?!

    Voici en perl
    perl -ne 'print if /^.{3}(.).{4}\1/' plop

    A remplacer {4} avec {76}
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Salut,

      Si, mais c'est le genre de truc auquel je ne pense jamais ;-((

      sed -n '/^.\{3\}\(.\).\{4\}\1/p' plop
      ou
      sed -rn '/^.{3}(.).{4}\1/p' plop

      Merci ;-))
      0
    2. lami20j > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Re,

      Et moi j'ai testé avec sed mais j'ai oublié de mettre les backslash avant les paranthèses.
      Je n'ai pas encore l'habitude ;-))
      0
    3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > lami20j
       
      On a oublié "egrep" dans l'histoire :

      egrep '^.{3}(.).{4}\1' plop

      :-))
      0
    4. lami20j > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Re,

      Effectivement je n'ai pas pensé à egrep. Merci.
      Ca doit marcher avec n'importe quelle application en fonction de l'implémentation des références arrières.
      0
    5. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > lami20j
       
      Sûrement, mais du coup 'grep' c'est le plusse mieux pour les paresseux ;-))
      0