Sed : filtrer par un numéro de colonne

Résolu/Fermé
tonticoeur - 4 janv. 2010 à 11:17
 tonticoeur - 4 janv. 2010 à 15:34
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

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
4 janv. 2010 à 11:34
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
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
4 janv. 2010 à 13:38
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
lami20j > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
4 janv. 2010 à 13:46
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897 > lami20j
4 janv. 2010 à 14:09
On a oublié "egrep" dans l'histoire :

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

:-))
0
lami20j > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
4 janv. 2010 à 14:24
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897 > lami20j
4 janv. 2010 à 14:34
Sûrement, mais du coup 'grep' c'est le plusse mieux pour les paresseux ;-))
0