Bonjour !
Je débute en shell et je dois faire des opérations sur un fichier.csv (les données à l'intérieur de celui ci sont séparées par des points virgule).
En fait sur certaines lignes la première colonne est vide ( pas de donnée avant le premier point virgule séparateur) , je souhaiterais tout bonnement supprimer du fichier les lignes dont le premier champ (colonne) est vide. Je pense que awk devrait être mon ami dans ce cas mais je ne maitrise pas encore le sujet ...
Voila si quelqu'un peut m'aider sur ce point je l'en remercie par avance !
@+
# ou avec sed
Posté par Ramón Perez (site web personnel) . Évalué à 3.
sed '/^[ ]*;/d' fichier
[^] # Re: ou avec sed
Posté par vinck . Évalué à 1.
J'ai utilisé la commande suivante :
( la variable $DAYDATE est déclarée avant :p )
sed '/^;/d' fichier`echo $DAYDATE`.csv > fichier`echo $DAYDATE`.csv.rm
mv fichier`echo $DAYDATE`.csv.rm fichier`echo $DAYDATE`.csv
@+
# en awk ....
Posté par totof2000 . Évalué à 4.
# avec grep
Posté par popopo333 . Évalué à 3.
# avec php
Posté par fabien . Évalué à 3.
ya une fonction bien sympas qui je crois s'apelle freadcsv
le php est tres pratique (plus que sed awk..) pour ce qui est du debugage (tu peux facilement placer un echo sur une ligne.
mon conseil, tu li le fichier (freadcsv), tu traite et tu ecrit le fichier resultat.
[^] # Re: avec php
Posté par vinck . Évalué à 2.
[^] # Re: avec php
Posté par fabien . Évalué à 2.
et même si ca "rajoute" une couche, y a t'il un impact reel ?
Je veux dire, s'agit 'il de traiter 200 milliard de lignes en moins de 30 secondes ? je ne pense pas.
L'avantage est le temps et la facilité de développement, même si ceci peut se payer par un temps d'execution d'une demi seconde supplementaire. (j'ai pas fais de bench).
# avec python
Posté par benoar . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.