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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Comment avoir en ksh la liste des elements d'une colonne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment avoir en ksh la liste des elements d'une colonne

n°1483033
guda
Posté le 28-11-2006 à 14:41:08  profilanswer
 

Bonjour,
 
J'ai un fichier csv avec deux colonnes :
 ma valeur 1;toto
 ma valeur 2;titi
 ma valeur 3;tata
 ...
 
J'ai besoin d'extraire chaque ligne de la premiere colonne.
 
J'ai essayé le code suivant :
 
 tbl_Source=`grep "^" $fichier|cut -d";" -f1`
 
 for ligne in $tbl_Source
  do
  #on log chaque ligne
  echo $ligne
 done
 
 
Malheuresement, j'obtient le resultat suivant :
 ma
 valeur
 1
 ma
 valeur
 2
 ...
 
Et non
 ma valeur 1
 ma valeur 2
 ...
 
Je doit me tromper dans la commande utilisée.
 
Avez-vous vous une idée ?
 
Merci pour votre aide

mood
Publicité
Posté le 28-11-2006 à 14:41:08  profilanswer
 

n°1483167
matafan
Posté le 28-11-2006 à 16:56:09  profilanswer
 

Il faut positioner IFS à "\n" :

(IFS="\n"; for i in `cut -d\; -f1 txt`; do echo $i; done)


Mais bon, awk est probablement plus adapté.

n°1483511
guda
Posté le 29-11-2006 à 09:52:42  profilanswer
 

Merci pour votre aide, mais la solution avec awk me fait de renvoi de ligne que sur les "n" :
Exemple pour mon fichier :
 mon avion;1
 ma chaine;2
 
Donne
 mo
  avion
  ma chai
 e
 
J'ai aussi essayé avec awk mais meme resultat :
IFS=$'\n'  
for i in $( awk -F\; '{ print $1 }' $fic_import )  
do  
echo "Ligne : $i \n"  
done  
 
ça me parraissait tout bête à faire mais cela semble vraiment problématique.
 
Je pense que je vais developper en pro*c, là au moins je sais manipuler des fichiers textes.
 
Merci pour votre aide

n°1483556
Elmoricq
Modérateur
Posté le 29-11-2006 à 10:37:11  profilanswer
 

nawk -F';' '{ print $1 }' fichier

 

ou encore avec le awk standard :

awk '{ FS=";" ; print $1 }' fichier

 

sinon y a perl aussi :

perl -n -e '$_ =~ s/;.*// and print $_' fichier

 

ou bien (avec notion de n° de champ) :

 

perl -n -e 'split /;/, $_ ; print "$_[0]\n"  ' fichier


 

 

ou bien, si on aime l'alambiqué :

OLDIFS=$IFS
IFS=
for i in $(cat fichier | cut -d';' -f1)
do
   echo $i
done
IFS=$OLDIFS


Message édité par Elmoricq le 29-11-2006 à 10:52:51

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

  Comment avoir en ksh la liste des elements d'une colonne

 

Sujets relatifs
[PHP] Traitement liste choix multiples[VB]Ajouter des éléments à un onglet
pb liste déroulantBLACKLIST - LISTE NOIR d'adresse IP à mettre sur vos site internet
[Java][Swing] Ajouter une colonne editable à une jtable non editableTri par colonne lorsque le Flexgrid est en flexSelectionByRow ?
Javascript + Liste déroulante <select>Utiliser SET mais avec une liste (SET IN etc...)
gestion d'une liste d'attente ??Extraire les ID des elements(paragraphe) d'un Div
Plus de sujets relatifs à : Comment avoir en ksh la liste des elements d'une colonne


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