Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
732 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  suppression de colonne dans un texte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

suppression de colonne dans un texte

n°2192060
kenwol
Posté le 29-05-2013 à 10:59:20  profilanswer
 

Bonjour,
 
Je ne sais pas si c'est possible d'être plus rapide que :
 - de lire un fichier ligne par ligne
 - supprimer les champs indiqués avec awk (en l'occurence le premier et troisième mots pour l'essai)
 
for ligne in `cat fichier1.txt"` ; do
     echo "$ligne" | awk -F" " '{ print $1="" ; print $3="" ; print $0 ; }' >> fichier2.txt"
done
 
C'est déjà très très rapide mais je manipule des fichiers de plusieurs milliers de lignes ce qui est un peu long et chiant lorsque l'on attend devant son écran ^^.
 
J'espère voir une réponse qui me fasse rêver.

mood
Publicité
Posté le 29-05-2013 à 10:59:20  profilanswer
 

n°2192064
Nukolau
Posté le 29-05-2013 à 11:26:36  profilanswer
 

Alors déjà faire une boucle juste pour lancer un awk c'est pas du tout utile, il suffit juste de donner a awk le nom du fichier en argument, il fait lui même la boucle.
Pour réaffecter les variables tu peux faire plus simple aussi :

Code :
  1. awk -F" " '{$1=$3="" ; print $0}' fichier1.txt > fichier2.txt


 
Après pour ton problème, si j'ai bien compris tu veux afficher les champs 2 et 4* d'un fichier. Pour ça, le cut est ton ami :
 

Code :
  1. cut -d' ' -f2,4- fichier1.txt > fichier2.txt


Message édité par Nukolau le 29-05-2013 à 11:31:23
n°2192065
kenwol
Posté le 29-05-2013 à 11:29:30  profilanswer
 

logiquement awk est plus rapide que cut mais merci, je vais essayer les deux possibilités.
 
Oui c'est ce que je viens de faire avec awk. J'avais la tête en l'air pour la boucle, cela est de nouveau rapide.
 
merci beaucoup


Message édité par kenwol le 29-05-2013 à 11:35:23
n°2192067
Nukolau
Posté le 29-05-2013 à 11:45:35  profilanswer
 

je viens d'ajouter la version awk dans mon message.
Pour les temps d'exécution du awk ça dépends, un "grep | cut" par exemple est plus rapide qu'un awk tout court :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  suppression de colonne dans un texte

 

Sujets relatifs
Faire la moyenne des données d'une colonne récupérées avec une requeteSQl : trouver l'élément suivant d'une colonne
colonne dans une table SQLite androidFICHIER TEXTE en JAVA
un texte aléatoire dans un fenetre PopupSelection a colonne variable dans une autre feuille
Changer ligne d'un fichier texteVB concatenation de texte
Requête SQL : Même occurence dans une colonneEnregister texte de textbox
Plus de sujets relatifs à : suppression de colonne dans un texte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR