<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://knowledge.pinon-hebert.fr/mediawiki/index.php?action=history&amp;feed=atom&amp;title=CSV_bash</id>
	<title>CSV bash - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://knowledge.pinon-hebert.fr/mediawiki/index.php?action=history&amp;feed=atom&amp;title=CSV_bash"/>
	<link rel="alternate" type="text/html" href="https://knowledge.pinon-hebert.fr/mediawiki/index.php?title=CSV_bash&amp;action=history"/>
	<updated>2026-05-19T16:52:10Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://knowledge.pinon-hebert.fr/mediawiki/index.php?title=CSV_bash&amp;diff=951&amp;oldid=prev</id>
		<title>Jpinon : Page créée avec «  == Comment &#039;&#039;parser&#039;&#039; des lignes type CSV en bash ==  Le concept est de premetre en bash des traitements similaires à awk tout en traitant le cas des colonnes délimitées par des &quot; (doubles quotes).  === Exemple de fichier texte (test.txt)===   Nicolas &quot;01 44 78 88 74&quot;  Pascal &quot;04 12 45 87&quot;  &quot;Jean Marie&quot; &quot;05 10 45 74 80&quot;  Awk ne sait pas simplement gérer le problème des guillemets. Un programe awk du type:  $ cat test.txt | awk &#039;{ print $1, $2 }&#039;  Donnera le... »</title>
		<link rel="alternate" type="text/html" href="https://knowledge.pinon-hebert.fr/mediawiki/index.php?title=CSV_bash&amp;diff=951&amp;oldid=prev"/>
		<updated>2025-02-27T22:21:17Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec «  == Comment &amp;#039;&amp;#039;parser&amp;#039;&amp;#039; des lignes type CSV en bash ==  Le concept est de premetre en bash des traitements similaires à awk tout en traitant le cas des colonnes délimitées par des &amp;quot; (doubles quotes).  === Exemple de fichier texte (test.txt)===   Nicolas &amp;quot;01 44 78 88 74&amp;quot;  Pascal &amp;quot;04 12 45 87&amp;quot;  &amp;quot;Jean Marie&amp;quot; &amp;quot;05 10 45 74 80&amp;quot;  Awk ne sait pas simplement gérer le problème des guillemets. Un programe awk du type:  $ cat test.txt | awk &amp;#039;{ print $1, $2 }&amp;#039;  Donnera le... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; == Comment &amp;#039;&amp;#039;parser&amp;#039;&amp;#039; des lignes type CSV en bash ==&lt;br /&gt;
&lt;br /&gt;
Le concept est de premetre en bash des traitements similaires à awk tout en traitant le cas des colonnes délimitées par des &amp;quot; (doubles quotes).&lt;br /&gt;
&lt;br /&gt;
=== Exemple de fichier texte (test.txt)===&lt;br /&gt;
&lt;br /&gt;
 Nicolas &amp;quot;01 44 78 88 74&amp;quot;&lt;br /&gt;
 Pascal &amp;quot;04 12 45 87&amp;quot;&lt;br /&gt;
 &amp;quot;Jean Marie&amp;quot; &amp;quot;05 10 45 74 80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Awk ne sait pas simplement gérer le problème des guillemets.&lt;br /&gt;
Un programe awk du type:&lt;br /&gt;
 $ cat test.txt | awk &amp;#039;{ print $1, $2 }&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Donnera le résultat :&lt;br /&gt;
 Nicolas &amp;quot;01&lt;br /&gt;
 Pascal &amp;quot;04&lt;br /&gt;
 &amp;quot;Jean Marie&amp;quot;&lt;br /&gt;
Qui n&amp;#039;est pas le résultat espéré.&lt;br /&gt;
&lt;br /&gt;
=== Traitement en bash ===&lt;br /&gt;
L&amp;#039;idée consiste a &amp;quot;évaluer&amp;quot; chaque ligne.&lt;br /&gt;
On crée une commande créant un tableau de valeurs :&lt;br /&gt;
 command=&amp;quot;tab=($line)&amp;quot;&lt;br /&gt;
Où $ligne contient une ligne de notre fichier test.txt.&lt;br /&gt;
&lt;br /&gt;
puis on l&amp;#039;évalue:&lt;br /&gt;
 eval $command&lt;br /&gt;
&lt;br /&gt;
on aura alors un tableau (de deux éléments dans le cas de test.txt). On peut les afficher par:&lt;br /&gt;
 echo &amp;quot;${tab[0]},${tab[1]}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attention a la syntaxe &amp;quot;bizarre&amp;quot; des variables tableaux en bash!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Le programe en entier donne (test.sh):&lt;br /&gt;
 #/usr/bin/bash&lt;br /&gt;
&lt;br /&gt;
 while read line;&lt;br /&gt;
 do&lt;br /&gt;
   command=&amp;quot;tab=($line)&amp;quot; ;&lt;br /&gt;
   eval $command ;&lt;br /&gt;
   echo &amp;quot;${tab[0]}=${tab[1]}&amp;quot;&lt;br /&gt;
 done&lt;br /&gt;
On teste par:&lt;br /&gt;
 $ cat test.txt | ./test.sh&lt;br /&gt;
 Nicolas=01 44 78 88 74&lt;br /&gt;
 Pascal=04 12 45 87&lt;br /&gt;
 Jean Marie=05 10 45 74 80&lt;br /&gt;
 $&lt;/div&gt;</summary>
		<author><name>Jpinon</name></author>
	</entry>
</feed>