OVH Cloud OVH Cloud

Erreur GREP

3 réponses
Avatar
cpom27fr
Bonjour,

Je travail actuelement sur AIX et j'ai besion de GREP pour filtrer les
lignes vides d'un fichier.

j'utilise la commande :

grep -v '^$' fic1 > fic2

Seulement pour certains fichiers la commande me retourne :

grep : 0652-226 La longueur maximale de la ligne (2048) est dépassée.

QQu'un sait-il pourquoi grep refuse d'executer la commande ?

D'avance merci !

Clement

3 réponses

Avatar
JustMe
Clement wrote:

Bonjour,

Je travail actuelement sur AIX et j'ai besion de GREP pour filtrer les
lignes vides d'un fichier.

j'utilise la commande :

grep -v '^$' fic1 > fic2

Seulement pour certains fichiers la commande me retourne :

grep : 0652-226 La longueur maximale de la ligne (2048) est dépassée.

QQu'un sait-il pourquoi grep refuse d'executer la commande ?


mauvais grep, changer grep ;-)


D'avance merci !

Clement


Avatar
Jérémy JUST
On Fri, 16 Apr 2004 18:52:42 +0200
JustMe wrote:

grep : 0652-226 La longueur maximale de la ligne (2048) est dépassée.
mauvais grep, changer grep ;-)



Oui. Je détaille quand même un peu: si c'est comme sous Solaris, les
outils du système sont salement limités en longueur de ligne.

Les outils GNU n'ont pas ces limitations (et leur installation se passe
bien sur la plupart des OS courants).
Donc plus qu'à chercher un truc comme « GNU grep » sur Google...

--
Jérémy JUST


Avatar
Stephane Chazelas
2004-04-18, 14:50(+02), Jérémy JUST:
On Fri, 16 Apr 2004 18:52:42 +0200
JustMe wrote:

grep : 0652-226 La longueur maximale de la ligne (2048) est dépassée.
mauvais grep, changer grep ;-)



Oui. Je détaille quand même un peu: si c'est comme sous Solaris, les
outils du système sont salement limités en longueur de ligne.


C'est standardisé. D'après POSIX, un fichier texte est composé
de lignes ne faisant pas plus de LINE_MAX caractères et grep est un
outil texte (LINE_MAX doit etre au moins egal à 2048 selon POSIX).

Un fichier qui contient des '' ou qui a des caractères après
le dernier 'n' ou qui a des lignes de plus de LINE_MAX caractères
n'est pas un fichier texte. Un fichier qui a des lignes de plus
de 2048 caractères peut donc ne pas etre considéré comme un
fichier texte.

Pour faire du grep sur des fichiers non-texte, on peut utiliser
perl (ou les outils GNU).

--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]