tech:bash_csv
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| tech:bash_csv [2025/03/24 15:06] – créée - modification externe 127.0.0.1 | tech:bash_csv [2026/06/07 19:12] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | < | ||
| + | {{tag> | ||
| + | |||
| + | # Bash CSV | ||
| + | |||
| + | |||
| + | Petit script pour analyser les données d'un fichier CSV | ||
| + | |||
| + | `get_info_csv.sh` | ||
| + | ~~~bash | ||
| + | #! /bin/bash | ||
| + | |||
| + | CSV_FILE=$1 | ||
| + | |||
| + | COUNT_FIELDS=$(head -1 " | ||
| + | |||
| + | |||
| + | GET_CSV_KEY() { | ||
| + | local -i i | ||
| + | i=$1 | ||
| + | head -1 " | ||
| + | } | ||
| + | |||
| + | GET_COUNT_VALUE() { | ||
| + | local -i i | ||
| + | i=$1 | ||
| + | sed -e 1d " | ||
| + | } | ||
| + | |||
| + | GET_UNIQUE_VALUE() { | ||
| + | local -i i | ||
| + | i=$1 | ||
| + | sed -e 1d " | ||
| + | } | ||
| + | |||
| + | |||
| + | for (( j=1; j< | ||
| + | do | ||
| + | echo -n " | ||
| + | COUNT=$(GET_COUNT_VALUE " | ||
| + | echo " | ||
| + | if [[ COUNT -lt 200 ]] | ||
| + | then | ||
| + | GET_UNIQUE_VALUE " | ||
| + | else | ||
| + | echo MUL | ||
| + | fi | ||
| + | echo " | ||
| + | done | ||
| + | ~~~ | ||
| + | |||
| + | Utilisation | ||
| + | ~~~bash | ||
| + | source get_info_csv.sh plop.csv | ||
| + | |||
| + | |||
| + | # Nom / entête du champ 1 | ||
| + | GET_CSV_KEY 1 | ||
| + | |||
| + | # Nombre de valeurs différente pour le champ 1 | ||
| + | GET_COUNT_VALUE 1 | ||
| + | |||
| + | # Récupère toutes les valeurs différentes pour un champ donné | ||
| + | GET_UNIQUE_VALUE 4 | ||
| + | |||
| + | # Nombre de champ / colonnes | ||
| + | echo $COUNT_FIELDS | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ## Autres | ||
| + | |||
| + | ### Type string vs int | ||
| + | |||
| + | Dans certains cas il est particulièrement gênant de voir le ou les zéros ne pas s' | ||
| + | ** Agent 7** \\ | ||
| + | A la place d' | ||
| + | |||
| + | Pour faire interpréter (dans LibreOffice / excel..) les données numériques comme des strings et non pas comme des integer l' | ||
| + | |||
