Connaitre longueur chaine maximum

Connaitre longueur chaine maximum - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 27-02-2009 à 16:17:37    

Bonjour,
 
J'ai un fichier texte de 600Mo sous unix et je voudrais savoir la longueur max d'une ligne du fichier.
Par exemple si mon fichier est :
 
 
totoo
gugus2000
bla
 
ca doit me renvoyer "9"
 
Merci de votre aide.
j'ai fait un script mais bcp trop lent pour etre utilisé il doit y avoir un moyen en shell rapide.


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
Reply

Marsh Posté le 27-02-2009 à 16:17:37   

Reply

Marsh Posté le 27-02-2009 à 16:21:11    

désolé mais on ne fait pas les devoirs des autres


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-02-2009 à 18:52:55    

open up open up  [:clooney3]


Message édité par black_lord le 27-02-2009 à 18:53:11

---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-02-2009 à 19:00:36    

pourquoi ne pas utiliser un langage de script ou faire une appli en C ?


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-02-2009 à 19:03:23    

Dans son second topic... il a sorti ça comme script

awk '{print length($0)}' /interfaces/cft/out/GMAO_MATUSETRANS.dat | sort -n | tail -1


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 27-02-2009 à 19:05:52    

o'gure a écrit :

Dans son second topic... il a sorti ça comme script

awk '{print length($0)}' /interfaces/cft/out/GMAO_MATUSETRANS.dat | sort -n | tail -1



 
[:hide]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-02-2009 à 19:13:13    

quelle plateforme ?


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-02-2009 à 22:12:43    

Un peu tous les unix
SunOS sparc et x86
HP UX
un troisieme dont je sais plus le nom mais du meme genre
Linux mais rare


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
Reply

Marsh Posté le 27-02-2009 à 22:17:55    

Le "truc" c'est que cette commande je l'execute sur des serveurs de prod. Je peux pas me permettre de monopolier le CPU du serveur pendant trop longtemps.


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
Reply

Marsh Posté le 27-02-2009 à 23:39:19    

black_lord a écrit :

pourquoi ne pas utiliser un langage de script ou faire une appli en C ?


Mais grave, quand on veut un truc rapide on fait du C propre !


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 27-02-2009 à 23:39:19   

Reply

Marsh Posté le 27-02-2009 à 23:39:59    

fais un programme en C et basta

 

[:benou_grilled]

Message cité 1 fois
Message édité par black_lord le 27-02-2009 à 23:40:15

---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-02-2009 à 23:45:22    

gee a écrit :


Mais grave, quand on veut un truc rapide on fait du C propre !


 
Je vais me renseigner si j'ai le droit d executer qqch comme ca sur le serveur d abord :)


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
Reply

Marsh Posté le 28-02-2009 à 10:44:07    

Gugus2000 a écrit :

Je vais me renseigner si j'ai le droit d executer qqch comme ca sur le serveur d abord :)


Que ce soit un script ou un programme (écrit en C ou en autre chose) il te faudra toujours le droit d'exécution pour pouvoir l'utiliser...


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 28-02-2009 à 12:12:26    

Oui je suis root sur les machines mais ca nempeche qu'executer une commande shell et un programme que tu as developpé toi meme ce n'est pas la meme chose.
 
Pour l'un ca fait parti du shell pour l'autre c'est un programme que tu n'as pas forcement le droit d avoir sur la machine si il n a pas été qualifié.


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
Reply

Marsh Posté le 28-02-2009 à 13:16:57    

Gugus2000 a écrit :

Oui je suis root sur les machines mais ca nempeche qu'executer une commande shell et un programme que tu as developpé toi meme ce n'est pas la meme chose.

 

Pour l'un ca fait parti du shell pour l'autre c'est un programme que tu n'as pas forcement le droit d avoir sur la machine si il n a pas été qualifié.


En même temps, en root avec les commandes de bases tu peux foutre en l'air n'importe quel système pour une bête erreur de synthaxe.
Après si t'as des process internes restrictifs...

Message cité 1 fois
Message édité par o'gure le 28-02-2009 à 13:17:29

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 28-02-2009 à 13:27:02    

o'gure a écrit :


En même temps, en root avec les commandes de bases tu peux foutre en l'air n'importe quel système pour une bête erreur de synthaxe.
Après si t'as des process internes restrictifs...


 
Bien sur je suis d'accord.
Et en effet process restrictifs :) C'est les serveurs de prods d'une grosse boite quand meme


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
Reply

Marsh Posté le 28-02-2009 à 16:49:12    

gee a écrit :


Mais grave, quand on veut un truc rapide on fait du C propre !


 

black_lord a écrit :

fais un programme en C et basta
 
[:benou_grilled]


 [:jerome38]  
 
Sinon y a wc qui le fait très bien de base [:cerveau dr]
 

NAME
       wc - print newline, word, and byte counts for each file
 
SYNOPSIS
       wc [OPTION]... [FILE]...
       wc [OPTION]... --files0-from=F
 
DESCRIPTION
       Print newline, word, and byte counts for each FILE, and a total line if more than one FILE is specified.  With no FILE, or when FILE is -, read standard input.
 
[...]
       -L, --max-line-length
              print the length of the longest line


 

Citation :

esprit:anarkia.4> cat /tmp/test.txt
totoo
gugus2000
bla
esprit:anarkia.5> wc -L /tmp/test.txt
9 /tmp/test.txt


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 28-02-2009 à 17:07:45    

e_esprit a écrit :


 [:jerome38]  
 
Sinon y a wc qui le fait très bien de base [:cerveau dr]
 

NAME
       wc - print newline, word, and byte counts for each file
 
SYNOPSIS
       wc [OPTION]... [FILE]...
       wc [OPTION]... --files0-from=F
 
DESCRIPTION
       Print newline, word, and byte counts for each FILE, and a total line if more than one FILE is specified.  With no FILE, or when FILE is -, read standard input.
 
[...]
       -L, --max-line-length
              print the length of the longest line


 

Citation :

esprit:anarkia.4> cat /tmp/test.txt
totoo
gugus2000
bla
esprit:anarkia.5> wc -L /tmp/test.txt
9 /tmp/test.txt



 
 
C'est une extension GNU, pas standard.


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 28-02-2009 à 17:13:35    

Bah il n'a qu'à récupérer les sources du wc de GNU, et le recompiler sous un autre nom, pas besoin de programmer quelque chose qui existe déjà [:delarue3]


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 28-02-2009 à 19:10:19    

e_esprit a écrit :

Bah il n'a qu'à récupérer les sources du wc de GNU, et le recompiler sous un autre nom, pas besoin de programmer quelque chose qui existe déjà [:delarue3]


c'est 10 lignes en C hein  [:pingouino]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 28-02-2009 à 20:07:24    

black_lord a écrit :


c'est 10 lignes en C hein  [:pingouino]


10 lignes en C ca suffit même pas pour les headers [:cosmoschtroumpf]


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 28-02-2009 à 20:39:46    

e_esprit a écrit :

10 lignes en C ca suffit même pas pour les headers [:cosmoschtroumpf]


[:pingouino]


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 28-02-2009 à 21:00:45    

Note pour plus tard : être modo semble provoquer des troubles oculaires [:transparency]


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 01-03-2009 à 01:54:08    

Merci bcp e_esprit :)


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
Reply

Marsh Posté le 01-03-2009 à 10:29:16    

e_esprit a écrit :


 

Citation :

esprit:anarkia.4> cat /tmp/test.txt
totoo
gugus2000
bla
esprit:anarkia.5> wc -L /tmp/test.txt
9 /tmp/test.txt



 
y'a pas un risque de plomber la bécane en passant cela ?
c'est tout de meme un fichier de 600 Mo.

Reply

Marsh Posté le 01-03-2009 à 11:33:38    

Je vais tester sur une machine d'integration je vais bien voir le CPU et le temps que cela mets :)


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
Reply

Marsh Posté le 01-03-2009 à 11:40:18    

macfennec a écrit :

y'a pas un risque de plomber la bécane en passant cela ?


man nice
man ionice


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 01-03-2009 à 15:25:37    

macfennec a écrit :


 
y'a pas un risque de plomber la bécane en passant cela ?
c'est tout de meme un fichier de 600 Mo.


 
pour tes solaris il faudra trouver autre chose hein :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 02-03-2009 à 15:50:30    

Au cas ou :
 
 
Affiche la longueur de chaque ligne et affiche la ligne en question :
cat toto.txt | awk '{print length, $0}'
 
Affiche la ligne la plus grande et donne sa longueur
cat toto.txt|awk '{print length, $0}'|sort -nr|head -1
 
Donne la longueur de la plus grande ligne.
cat toto.txt|awk '{print length}'|sort -nr|head -1
 
Sous linux :
wc -L


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
Reply

Marsh Posté le 02-03-2009 à 16:58:53    

Tant qu'a faire du awk, autant tout faire en awk plutôt qu'ajouter sort et head (et cat)...

Reply

Marsh Posté le 02-03-2009 à 17:05:40    

Ok ca donnerait quoi comme commande ?


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
Reply

Marsh Posté le 03-03-2009 à 09:10:38    

awk '(len = length) > max { max = len } END { print max }' txt

Reply

Marsh Posté le 03-03-2009 à 11:16:38    

merci :)


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed