UNIX : récupération partielles de données

Fermé
bob - 9 sept. 2002 à 18:47
 bob - 10 sept. 2002 à 10:08
Bonjour

J'ai un fichier .txt à traiter avec un shell, fichier sous la forme :
COLONNE 1 COLONNE 2 COLONNE 3 COLONNE4
123654 OURS 012 12
789654 LION 013
784596 LAPIN 015 11
456213 PLOMB
125478 FER 14


...etc
( tabulation entre chaque champ )*

Je veux récupérer dans un nouveau fichier ( possédant 4 colonnes ) uniquement les lignes qui ont leurs 3 et 4 colonnes renseignées ( cad toutes sauf les lignes qui ont uniquement leurs deux colonnes renseignées )
Comment procéder?

Merci

4 réponses

si tu es sur que les deux première colonnes sont renseigné, je te propose:

cat tonfichier.txt | grep '[0-9]* [A-Za-z]* [0-9]* [0-9]*' > ton_ouveau_fichier.txt

biensur le motif est modifiable selon les besoins/bugs...
pour plus d'info: man grep ou alors
http://dpobel.free.fr/man/html/affiche_man.php?id=1256

tigrou - http://dpobel.free.fr/
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
9 sept. 2002 à 21:54
Avec awk.....

awk -- '{if ($4 != "") print $1,$2,$3;}' < bidon.txt

Il faut peut-être préciser les champs....

Johan Daine

The software said "Requires Windows98, Win2000, or better
So I installed Unix.
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
9 sept. 2002 à 21:54
awk -- '{if ($4 != "") print $1,$2,$3,$4;}' < bidon.txt

Of course...

The software said "Requires Windows98, Win2000, or better
So I installed Unix.
0
OK mais le problème c'est que les 4 colonnes ne sont pas remplies pour toutes les lignes ( cad soit pas de données, soit pas de tabulation )
Il y a donc des lignes ou seulement 2 premières colonnes remplies, donc passage à la seconde ligne après la deuxième colonne de la première ligne.

Comment faire ?

Merci à tous
0