Outils pour utilisateurs

Outils du site


tech:bash_csv

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tech:bash_csv [2025/03/24 15:06] – créée - modification externe 127.0.0.1tech:bash_csv [2026/06/07 19:12] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +<!DOCTYPE markdown>
 +{{tag>bash CSV CA}}
 +
 +# 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 "$CSV_FILE" | sed -e 's/[^;]//g' | wc  | awk '{print $3}')
 +
 +
 +GET_CSV_KEY() {
 +        local -i i
 +        i=$1
 +        head -1 "$CSV_FILE" | cut -d';' -f"$i"
 +}
 +
 +GET_COUNT_VALUE() {
 +        local -i i
 +        i=$1
 +        sed -e 1d "$CSV_FILE" | cut -d';' -f"$i" | sort -u | wc -l
 +}
 +
 +GET_UNIQUE_VALUE() {
 +        local -i i
 +        i=$1
 +        sed -e 1d "$CSV_FILE" | cut -d';' -f"$i" | sort -u
 +}
 +
 +
 +for (( j=1; j<=COUNT_FIELDS; j++ ))
 +do
 +        echo -n "[${j}_"
 +        COUNT=$(GET_COUNT_VALUE "$j")
 +        echo "$(GET_CSV_KEY "$j")]"
 +        if [[ COUNT -lt 200 ]]
 +        then
 +                GET_UNIQUE_VALUE "$j"
 +        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'afficher. Exemple : \\
 +** Agent 7** \\
 +A la place d'**agent 007**
 +
 +Pour faire interpréter (dans LibreOffice / excel..) les données numériques comme des strings et non pas comme des integer l'astuce consiste à faire précéder le chiffre par une tabulation. 
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki