[shell] Supprimer les espaces d'un fichier [resolu]

Supprimer les espaces d'un fichier [resolu] [shell] - Linux et OS Alternatifs

Marsh Posté le 01-04-2004 à 20:35:13    

Bon, soit un fichier de quelques millions de lignes.
 
Je veux le supprimer les espaces et les chiffres de chaque ligne, puis trier par ordre alphabétique et enlever les doublons.
 
Je commence par  

Code :
  1. cat fichier | grep -v 0 | ... grep -v 9 > fic.temp

pour enlever les chiffres.
 
Je veux ensuite virer tous les espaces (surtout ceux en fin de ligne).
 
Je tente des

Code :
  1. sed -e "s/\ //g" fichier puis, avec tr

et rien ne marche jamais. Je craque. Je suis sous zsh, ca explique peut etre que la syntaxe soit pas la bonne, mais je trouve pas.
 
A vot' bon coeur...
 
edit: c'est ptet pas clair, mais c'est pour les espaces que ca marche pas, pour les chiffres pas de problèmes.


Message édité par AirbaT le 02-04-2004 à 10:29:33
Reply

Marsh Posté le 01-04-2004 à 20:35:13   

Reply

Marsh Posté le 01-04-2004 à 20:43:28    

Arrétez tout ca marche...

Reply

Marsh Posté le 01-04-2004 à 20:48:35    

g bien fait de pas commencer :D

Reply

Marsh Posté le 01-04-2004 à 20:53:21    

En fait non... a marche po

Reply

Marsh Posté le 01-04-2004 à 20:53:39    

man tr

Reply

Marsh Posté le 01-04-2004 à 20:58:23    

Voila ce que je fais en detail :
 
20:50 root@Moork # echo loli > test
20:50 root@Moork # echo 'loli' >> test
20:50 root@Moork # echo 'lol i' >> test
20:51 root@Moork # echo 'loli ' >> test
20:51 root@Moork # cat test
loli
loli
lol i
loli
 
Jusque la ok.
20:51 root@Moork # cat test| tr -d ' ' | uniq
loli
 
Génial, me dis-je.
 
Puis sur mon fichier :
20:53 root@Moork # cat Pluri.temp | tr -d ' ' | uniq > final
 
Une petite vérif:
20:54 root@Moork # fgrep julienne final
alajulienne
julienne
julienne
julienned
juliennes
potagealajulienne
 
Mais pourquoi il y a des lignes identiques ??? J'ai essayé avec sort-u, pareil? Je suppose que ce sont des espaces en fin de ligne mais pourquoi avec le fichier de test ca marche ?? Je craque  :sweat:  
 
 
 

Reply

Marsh Posté le 01-04-2004 à 21:00:58    


 
Je vois pas là où je merde.

Reply

Marsh Posté le 01-04-2004 à 21:10:45    

Bon bah vais aller me bourrer la gueule alors, na !

Reply

Marsh Posté le 02-04-2004 à 05:57:24    

Je suppose évidemment que tu as lu la première ligne du man de uniq :

uniq - remove duplicate lines from a sorted file
                                     ^^^^^^

Reply

Marsh Posté le 02-04-2004 à 06:04:08    

donc tu rajoutes un sort |

Reply

Marsh Posté le 02-04-2004 à 06:04:08   

Reply

Marsh Posté le 02-04-2004 à 10:08:35    

Le fichier a été trié par ordre alphabétique avant.
 
Si je fais quand meme avec un sort :

Code :
  1. 9:57 root@Moork # cat fichier | tr -d ' ' | sort | uniq > final
  2. 9:57 root@Moork # fgrep julienne final
  3. alajulienne
  4. julienne
  5. julienne
  6. julienned
  7. juliennes
  8. potagealajulienne


 
Ce sont peut-etre pas des espaces alors :??:

Reply

Marsh Posté le 02-04-2004 à 10:11:47    

Arg ce sont pas des espaces mais des '^M'. (merci cat -vET).
 
Du coup un petit cat -v | tr -d '^M' après avoir supprimé les espaces a fini le boulot.
Merci


Message édité par AirbaT le 02-04-2004 à 10:30:30
Reply

Marsh Posté le 02-04-2004 à 11:10:51    

man flip

Reply

Sujets relatifs:

Leave a Replay

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