Commit 47310376 authored by Jean-Benoist Leger's avatar Jean-Benoist Leger
Browse files

initial commit

parents
all: manipulation_csv.html manipulation_csv.pdf
%.pdf: %.md
pandoc -o $@ $<
%.html: %.md
pandoc -s -o $@ $<
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="generator" content="pandoc" />
<title></title>
<style type="text/css">code{white-space: pre;}</style>
</head>
<body>
<h1 id="feuille-de-triche-sur-la-manipulation-de-csv-en-ligne-de-commande">Feuille de triche sur la manipulation de CSV en ligne de commande</h1>
<h2 id="selection-dun-sous-ensemble-de-colonne">Selection d'un sous-ensemble de colonne</h2>
<h3 id="avec-awk">Avec <code>awk</code></h3>
<p>Commande:</p>
<pre><code>awk &#39;{FS=&quot;;&quot;; OFS=&quot;;&quot;} {print $1,$2,$4}&#39; input.csv &gt; output.csv</code></pre>
<p>Avec:</p>
<ul>
<li><code>FS</code> le séparateur de colonne du fichier entrée</li>
<li><code>OFS</code> le séparateur de colonne du fichier sortie</li>
<li><code>$1,$2</code> les colonnes qu'on veut conserver (ici la première, la seconde et la quatrième).</li>
</ul>
<h3 id="avec-cut">Avec <code>cut</code></h3>
<p>Commande:</p>
<pre><code>cut -d &#39;;&#39; -f 1-2,4 input.csv &gt; output.csv</code></pre>
<p>Avec:</p>
<ul>
<li><code>-d ';'</code> le séparateur de colonne du fichier entrée et du fichier sortie</li>
<li><code>1-2,4</code> les colonnes qu'on veut conserver (ici toutes les colonnes de la première à la seconde et la quatrième).</li>
</ul>
<h2 id="rajouter-une-colonne-numéro-de-ligne-pour-faire-une-ak">Rajouter une colonne numéro de ligne pour faire une AK</h2>
<p>Commande:</p>
<pre><code>awk &#39;{FS=&quot;;&quot;; OFS=&quot;;&quot;} {print NR,$1,$2,$4}&#39; input.csv &gt; output.csv</code></pre>
<p>Avec:</p>
<ul>
<li><code>FS</code> le séparateur de colonne du fichier entrée</li>
<li><code>OFS</code> le séparateur de colonne du fichier sortie</li>
<li><code>NR</code> la variable de <code>awk</code> qui contient le numéro des lignes</li>
<li><code>$1,$2</code> les colonnes qu'on veut conserver (ici la première, la seconde et la quatrième`.</li>
</ul>
<h2 id="gestion-des-doublons">Gestion des doublons</h2>
<h3 id="enlever-les-lignes-dont-des-colonnes-sont-dupliquées">Enlever les lignes dont des colonnes sont dupliquées</h3>
<p>Commande:</p>
<p>La commande trie l'entrée par rapport à une clef, et supprime les doublons sur la clefs.</p>
<pre><code>sort -t &#39;;&#39; -k 3,5 -u input.csv &gt; output.csv</code></pre>
<p>Avec:</p>
<ul>
<li><code>-t ';'</code> le séparateur de colonne utilisé pour la construction de la clef</li>
<li><code>-k 3,5</code> la clef utilisée pour le tri et la suppression des doublons (ici les colonnes 3 à 5.</li>
</ul>
<p>Attention pour utiliser qu'une colonne en clef de tri et de suppression, il faut la préciser en double, par exemple pour utiliser la colonne 3, il faudra indiquer <code>-k 3,3</code>.</p>
</body>
</html>
# Feuille de triche sur la manipulation de CSV en ligne de commande
## Selection d'un sous-ensemble de colonne
### Avec `awk`
Commande:
```
awk '{FS=";"; OFS=";"} {print $1,$2,$4}' input.csv > output.csv
```
Avec:
- `FS` le séparateur de colonne du fichier entrée
- `OFS` le séparateur de colonne du fichier sortie
- `$1,$2` les colonnes qu'on veut conserver (ici la première, la seconde et la
quatrième).
### Avec `cut`
Commande:
```
cut -d ';' -f 1-2,4 input.csv > output.csv
```
Avec:
- `-d ';'` le séparateur de colonne du fichier entrée et du fichier sortie
- `1-2,4` les colonnes qu'on veut conserver (ici toutes les colonnes de la
première à la seconde et la quatrième).
## Rajouter une colonne numéro de ligne pour faire une AK
Commande:
```
awk '{FS=";"; OFS=";"} {print NR,$1,$2,$4}' input.csv > output.csv
```
Avec:
- `FS` le séparateur de colonne du fichier entrée
- `OFS` le séparateur de colonne du fichier sortie
- `NR` la variable de `awk` qui contient le numéro des lignes
- `$1,$2` les colonnes qu'on veut conserver (ici la première, la seconde et la
quatrième`.
## Gestion des doublons
### Enlever les lignes dont des colonnes sont dupliquées
Commande:
La commande trie l'entrée par rapport à une clef, et supprime les doublons sur
la clefs.
```
sort -t ';' -k 3,5 -u input.csv > output.csv
```
Avec:
- `-t ';'` le séparateur de colonne utilisé pour la construction de la clef
- `-k 3,5` la clef utilisée pour le tri et la suppression des doublons (ici les
colonnes 3 à 5.
Attention pour utiliser qu'une colonne en clef de tri et de
suppression, il faut la préciser en double, par exemple pour utiliser la colonne
3, il faudra indiquer `-k 3,3`.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment