Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

viewer .csv en console

8 views
Skip to first unread message

Kevin Denis

unread,
Oct 12, 2015, 4:47:03 AM10/12/15
to
Bonjour,

comme je sais qu'il existe pleins de petits utilitaires en ligne
de commande méconnus, je me demandais s'il y en avait un qui
permettrait de voir des fichiers csv.

Souvent, on cat un .csv, et la largeur des champs des colonnes
fait que ça apparait un peu en vrac:

$ cat file.csv
Jour;nombre de hits;disponibilité;colonne D
Mercredi;8;N;Obiwan
;;;E
Jeudi;Non disponible;;;

et ce n'est pas super simple à lire
si on pouvait avoir:

$ supertool file.csv
Jour; nombre de hits; disponibilité; colonne D
Mercredi; 8; N; Obiwan
; ; ; E
Jeudi; Non disponible; ;

ça serait beaucoup plus pratique.

Une idée?
Merci
--
Kevin

Francois Lafont

unread,
Oct 12, 2015, 6:12:43 AM10/12/15
to
Bonjour,

Désolé, je n'avais pas vu que le message était sur 2 groupes.
Du coup, je renvoie mon message, désolé pour le doublon sur
fr.comp.os.unix.

Il y a sûrement plus évolué mais perso j'utilise souvent
la commande column pour faire ce genre de chose :

------------------------------------------------------
~$ column -n -s ';' -t /tmp/test.csv
Jour nombre de hits disponibilité colonne D
Mercredi 8 N Obiwan
E
Jeudi Non disponible
------------------------------------------------------

Bon, tu verras dans la page man que column ne possède pas
des tonnes d'options et que c'est peut-être un peu limité.
Par exemple dans la sortie les colonnes sont délimitées par
des espaces et je ne crois pas qu'on puisse changer cela
(et mettre des '|' par exemple). En tout cas, je n'ai pas
trouvé.


--
François Lafont

canonmarky

unread,
Jan 31, 2018, 7:33:11 AM1/31/18
to
Le lundi 12 Octobre 2015 à 10:47 par Kevin Denis :
We are an independent group of specialized IT professionals and database
technicians we are specialized in the production of passport, SSN, license, I.D
cards, Birth certificates, diplomas,... EMAIL..(canon...@gmail.com).
we produce documents *of very high quality and other services. We have been
producing passport, license, SSN, I.D cards, Birth certificates, diplomas
and other documents for over 150 countries.(North America, South America,
Europe, Australia, Asia and Africa),EMAIL...(canon...@gmail.com)
We Produce Both Real Database registered passport, license, SSN,
I.D cards, Birth certificates, diplomas which are legally used and we also
produce Fake or Duplicate or Novelty documents which are just use for Camouflage
and Can NOT be used Legally*
these types of documents are not important so we produce on high demand and
order.EMAIL...(canon...@gmail.com).......
We work with insiders from top 120 embassies within the world who
have all our clients information processed from within and have everything
authenticated in the supposed database system. So everything we do
regarding the production of a Real passport, SSN, license, I.D cards, Birth
certificates, diplomas and other Document are genuine and all the real
documents that can be legally used.EMAIL..(canon...@gmail.com)...PURCHASE NOW.


bandaaali

unread,
May 7, 2019, 8:57:12 PM5/7/19
to
Le lundi 12 Octobre 2015 à 10:47 par Kevin Denis :

Sergio

unread,
May 8, 2019, 2:01:09 AM5/8/19
to
Le 08/05/2019 à 02:57, bandaaali a écrit :

>> comme je sais qu'il existe pleins de petits utilitaires en ligne
>> de commande méconnus, je me demandais s'il y en avait un qui
>> permettrait de voir des fichiers csv.
>>
>> Souvent, on cat un .csv, et la largeur des champs des colonnes
>> fait que ça apparait un peu en vrac:
>>
>> $ cat file.csv
>> Jour;nombre de hits;disponibilité;colonne D
>> Mercredi;8;N;Obiwan
>> ;;;E
>> Jeudi;Non disponible;;;
>>
>> et ce n'est pas super simple à lire
>> si on pouvait avoir:
>>
>> $ supertool file.csv
>> Jour; nombre de hits; disponibilité; colonne D
>> Mercredi; 8; N; Obiwan
>> ; ; ; E
>> Jeudi; Non disponible; ;
>>
>> ça serait beaucoup plus pratique.
>>
>> Une idée?

Un petit coup de awk peut-être ?


--
Serge http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org

Rambo

unread,
May 8, 2019, 4:32:51 AM5/8/19
to
bandaaali wrote on 08-05-19 02:57:
EXCEL manipule ce genre de fichier à la perfection .... et en plus on
peut écrire une macro si on veut peaufiner et mettre des titres en gras
par exemple.

Erwan David

unread,
May 8, 2019, 1:38:38 PM5/8/19
to
bandaaali <nospam_bra...@lcebull.com.invalid> écrivait :
emacs a un mode csv

--
Les simplifications c'est trop compliqué

Philippe Weill

unread,
May 9, 2019, 2:00:11 AM5/9/19
to
Le 08/05/2019 à 19:38, Erwan David a écrit :
> bandaaali <nospam_bra...@lcebull.com.invalid> écrivait :
>
>> Le lundi 12 Octobre 2015 à 10:47 par Kevin Denis :
>>> Bonjour,
>>>
>>> comme je sais qu'il existe pleins de petits utilitaires en ligne
>>> de commande méconnus, je me demandais s'il y en avait un qui
>>> permettrait de voir des fichiers csv.
>>>
>>> Souvent, on cat un .csv, et la largeur des champs des colonnes
>>> fait que ça apparait un peu en vrac:
>>>
>>> $ cat file.csv
>>> Jour;nombre de hits;disponibilité;colonne D
>>> Mercredi;8;N;Obiwan
>>> ;;;E
>>> Jeudi;Non disponible;;;
>>>
>>> et ce n'est pas super simple à lire
>>> si on pouvait avoir:
>>>
>>> $ supertool file.csv



>>> Jour; nombre de hits; disponibilité; colonne D
>>> Mercredi; 8; N; Obiwan
>>> ; ; ; E
>>> Jeudi; Non disponible; ;
>>>
>>> ça serait beaucoup plus pratique.
>>>
>>> Une idée?

un awk avec un printf ferait le job facilement


awk -F';' '{printf "%-15s;%-15s;%-15s;%-15s\n",$1,$2,$3,$4}' file.csv

Benoit Izac

unread,
May 9, 2019, 2:32:02 PM5/9/19
to
Bonjour,

Le 09/05/2019 à 08:00, Philippe Weill a écrit dans le message
<qb0fla$a2n$1...@shakotay.alphanet.ch> :

>>> Le lundi 12 Octobre 2015 à 10:47 par Kevin Denis :
>>>> Bonjour,
>>>>
>>>> comme je sais qu'il existe pleins de petits utilitaires en ligne
>>>> de commande méconnus, je me demandais s'il y en avait un qui
>>>> permettrait de voir des fichiers csv.
>>>>
>>>> Souvent, on cat un .csv, et la largeur des champs des colonnes
>>>> fait que ça apparait un peu en vrac:
>>>>
>>>> $ cat file.csv
>>>> Jour;nombre de hits;disponibilité;colonne D
>>>> Mercredi;8;N;Obiwan
>>>> ;;;E
>>>> Jeudi;Non disponible;;;
>>>>
>>>> et ce n'est pas super simple à lire
>>>> si on pouvait avoir:
>>>>
>>>> $ supertool file.csv
>>>> Jour; nombre de hits; disponibilité; colonne D
>>>> Mercredi; 8; N; Obiwan
>>>> ; ; ; E
>>>> Jeudi; Non disponible; ;
>>>>
>>>> ça serait beaucoup plus pratique.
>>>>
>>>> Une idée?
>
> un awk avec un printf ferait le job facilement
>
> awk -F';' '{printf "%-15s;%-15s;%-15s;%-15s\n",$1,$2,$3,$4}' file.csv

C'est un peu plus compliqué que ça le CSV ; sans parler que fixer à 15
la largeur de tous les champs ne soit pas forcément adapté, imaginons,
par exemple, que je veuille mettre un « ; » dans un des champs.

J'utiliserai plutôt un truc comme csvlook issu de cvskit
(<https://csvkit.readthedocs.io/en/latest/>) mais j'espère que Kevin
a trouvé une solution depuis les trois ans et demi qu'il a posé cette
question.

--
Benoit Izac

Rambo

unread,
May 9, 2019, 2:55:38 PM5/9/19
to
Benoit Izac wrote on 09-05-19 20:31:
Si tu veux mettre un ";" dans un champ, tu choisi au préalable un autre
caractère de séparation de champs.
Par exemple "§"

Benoit Izac

unread,
May 9, 2019, 3:35:03 PM5/9/19
to
Bonjour,

Le 09/05/2019 à 20:55, Rambo a écrit dans le message
<qb1t37$1ouc$1...@gioia.aioe.org> :

>> C'est un peu plus compliqué que ça le CSV ; sans parler que fixer à 15
>> la largeur de tous les champs ne soit pas forcément adapté, imaginons,
>> par exemple, que je veuille mettre un « ; » dans un des champs.
>>
> Si tu veux mettre un ";" dans un champ, tu choisi au préalable un
> autre caractère de séparation de champs.
> Par exemple "§"

Non. Soit tu l'entoures de « " » (ou autre chose), soit tu l'échappes
avec « \ » (ou autre chose). Le problème du CSV c'est qu'il y a plein de
dialectes (d'ailleurs « C », c'est pour « , »). Il faut donc configurer
le parser selon le format du fichier.


--
Benoit Izac

Rambo

unread,
May 10, 2019, 2:30:17 AM5/10/19
to
Benoit Izac wrote on 09-05-19 21:34:
Tes solutions sont bien fort compliquées ....

Sergio

unread,
May 10, 2019, 2:48:59 AM5/10/19
to
Déjà, on part de la solution simple de Philippe Weill :

awk -F';' '{printf "%-15s;%-15s;%-15s;%-15s\n",$1,$2,$3,$4}' file.csv

Ensuite, on peaufine (largeur et nombre de colonnes, nom du fichier, séparateur...), pour atterrir à un vrai script.

Nicolas George

unread,
May 10, 2019, 3:50:22 AM5/10/19
to
Rambo , dans le message <qb35po$15q9$1...@gioia.aioe.org>, a écrit :
> Tes solutions sont bien fort compliquées ....

Les tiennes ne marchent pas.

Philippe Weill

unread,
May 10, 2019, 3:56:25 AM5/10/19
to
Le 10/05/2019 à 08:48, Sergio a écrit :
> Le 10/05/2019 à 08:30, Rambo a écrit :
>> Benoit Izac wrote on 09-05-19 21:34:
>>> Bonjour,
>>>
>>> Le 09/05/2019 à 20:55, Rambo a écrit dans le message
>>> <qb1t37$1ouc$1...@gioia.aioe.org> :
>>>
>>>>> C'est un peu plus compliqué que ça le CSV ; sans parler que fixer à 15
>>>>> la largeur de tous les champs ne soit pas forcément adapté, imaginons,
>>>>> par exemple, que je veuille mettre un « ; » dans un des champs.
>>>>>
>>>> Si tu veux mettre un ";" dans un champ, tu choisi au préalable un
>>>> autre caractère de séparation de champs.
>>>> Par exemple "§"
>>> Non. Soit tu l'entoures de « " » (ou autre chose), soit tu l'échappes
>>> avec « \ » (ou autre chose). Le problème du CSV c'est qu'il y a plein de
>>> dialectes (d'ailleurs « C », c'est pour « , »). Il faut donc configurer
>>> le parser selon le format du fichier.
>>>
>> Tes solutions sont bien fort compliquées ....

sur les newsgroups ,c'est parfois difficile
d'avoir une reponse precise à une question precise ;-)


>
> Déjà, on part de la solution simple de Philippe Weill :
>
> awk -F';' '{printf "%-15s;%-15s;%-15s;%-15s\n",$1,$2,$3,$4}' file.csv
>
> Ensuite, on peaufine (largeur et nombre de colonnes, nom du fichier, séparateur...), pour atterrir à un vrai script.
>

pas forcement dans ce cas là il peut etre plus interessant d'utiliser des choses déjà faite

rapport temps passé / qualité / nombre d'utilisations

moi c'est 30 secondes pour une seule utilisation

Rambo

unread,
May 10, 2019, 11:40:02 AM5/10/19
to
Nicolas George wrote on 10-05-19 09:50:
> Rambo , dans le message <qb35po$15q9$1...@gioia.aioe.org>, a écrit :
>> Tes solutions sont bien fort compliquées ....
> Les tiennes ne marchent pas.
C'est peut-être qu e je suis sous windows avec excel que ca marche
nickel ....
Parce si on prend un séparateur "§" différent de ce qu'on veut trouver
dans un champ "," ... ca marche.

Nicolas George

unread,
May 10, 2019, 11:42:53 AM5/10/19
to
Rambo , dans le message <qb460f$1pbb$1...@gioia.aioe.org>, a écrit :
> Parce si on prend un séparateur "§" différent de ce qu'on veut trouver
> dans un champ "," ... ca marche.

Et tu fais comment si tu ne sais pas à priori quels caractères tu vas
trouver dans tes champs, gros malin ?

Benoit Izac

unread,
May 10, 2019, 1:37:31 PM5/10/19
to
Bonjour,

Le 10/05/2019 à 08:30, Rambo a écrit dans le message
<qb35po$15q9$1...@gioia.aioe.org> :

>>>> C'est un peu plus compliqué que ça le CSV ; sans parler que fixer à 15
>>>> la largeur de tous les champs ne soit pas forcément adapté, imaginons,
>>>> par exemple, que je veuille mettre un « ; » dans un des champs.
>>>>
>>> Si tu veux mettre un ";" dans un champ, tu choisi au préalable un
>>> autre caractère de séparation de champs.
>>> Par exemple "§"
>> Non. Soit tu l'entoures de « " » (ou autre chose), soit tu l'échappes
>> avec « \ » (ou autre chose). Le problème du CSV c'est qu'il y a plein de
>> dialectes (d'ailleurs « C », c'est pour « , »). Il faut donc configurer
>> le parser selon le format du fichier.
>>
> Tes solutions sont bien fort compliquées ....

Je ne suis pas à l'origine de ce format de fichier.
<https://fr.wikipedia.org/wiki/Comma-separated_values>

--
Benoit Izac

Rambo

unread,
May 10, 2019, 5:42:55 PM5/10/19
to
Nicolas George wrote on 10-05-19 17:42:
Ce serait assez rare de trouver ce truc "§".
Si tu ne sait rien et que çà peut être m'importe quoi - alors tant pis.
De toute façon c'est à celui qui construit le .csv de prendre ses
précautions.
Tiens tu me donne une idée, je vais faire exprès de prendre ";" comme
séparateur et de mettre un ";" dans un champ, pour voir ce que çà donne.
Merci de l'idée.

Benoit Izac

unread,
May 11, 2019, 3:21:08 AM5/11/19
to
Bonjour,

Le 10/05/2019 à 23:42, Rambo a écrit dans le message
<qb4r8s$r1m$1...@gioia.aioe.org> :

>>> Parce si on prend un séparateur "§" différent de ce qu'on veut trouver
>>> dans un champ "," ... ca marche.
>>
>> Et tu fais comment si tu ne sais pas à priori quels caractères tu vas
>> trouver dans tes champs, gros malin ?
>
> Ce serait assez rare de trouver ce truc "§".
> Si tu ne sait rien et que çà peut être m'importe quoi - alors tant
> pis.

Ça c'est de la solution !

> De toute façon c'est à celui qui construit le .csv de prendre ses
> précautions.

Justement il va prendre ses précautions en entourant le champ ou en
échappant le séparateur. Du coup, il faut aussi que celui qui le lise en
tienne compte, non ?

> Tiens tu me donne une idée, je vais faire exprès de prendre ";" comme
> séparateur et de mettre un ";" dans un champ, pour voir ce que çà
> donne.

Puisque tu as Excel, je t'invite à faire le test de mettre un « ; » dans
un champ et de voir ce qu'il te sort. Ensuite tu sors awk et tu vois si
ça marche toujours. Finalement, l'étape la plus importante, tu
réfléchis à tout cela avant de revenir ici nous donner la conclusion.

Accessoirement, pendant ta phase réflexion, tu t'interrogeras sur la
raison qui ont poussée les développeurs de différentes bibliothèques de
programmation à faire des trucs aussi compliqué pour analyser un truc
aussi bête que du CSV :
<https://docs.python.org/3/library/csv.html#dialects-and-formatting-parameters>
<https://metacpan.org/pod/Text::CSV#new>
<https://commons.apache.org/proper/commons-csv/apidocs/index.html>

--
Benoit Izac

Rambo

unread,
May 12, 2019, 5:21:45 PM5/12/19
to
Benoit Izac wrote on 11-05-19 09:20:
> Bonjour,
>
> Le 10/05/2019 à 23:42, Rambo a écrit dans le message
> <qb4r8s$r1m$1...@gioia.aioe.org> :
>
>>>> Parce si on prend un séparateur "§" différent de ce qu'on veut trouver
>>>> dans un champ "," ... ca marche.
>>> Et tu fais comment si tu ne sais pas à priori quels caractères tu vas
>>> trouver dans tes champs, gros malin ?
>> Ce serait assez rare de trouver ce truc "§".
>> Si tu ne sait rien et que çà peut être m'importe quoi - alors tant
>> pis.
> Ça c'est de la solution !
>
>> De toute façon c'est à celui qui construit le .csv de prendre ses
>> précautions.
> Justement il va prendre ses précautions en entourant le champ ou en
> échappant le séparateur. Du coup, il faut aussi que celui qui le lise en
> tienne compte, non ?
Le plus simple est qu'il utilise un séparateur dont il est certain qu'il
ne s'en trouvera pas un dans un champ.
0 new messages