Re: Problème avec libreoffice calc

Top Page

Reply to this message
Author: nt.guilde
Date:  
To: anne.guilde@free.fr
CC: ML Guilde
Subject: Re: Problème avec libreoffice calc
> J'ai un fichier csv que je veux trier par
> Categories, First Name, Last Name
>
> Juste la première ligne
> First Name;Last Name;Display Name;Nickname;E-mail Address;E-mail 2
> Address;E-mail 3 Address;Home Phone;Business Phone;Home Fax;Business
> Fax;Pager;Mobile Phone;Home Street;Home Address 2;Home City;Home State;Home
> Postal Code;Home Country;Business Address;Business Address 2;Business
> City;Business State;Business Postal Code;Business Country;Country
> Code;Related name;Job
> Title;Department;Organization;Notes;Birthday;Anniversary;Gender;Web Page;Web
> Page 2;Categories


$ sort -t \; -k 36,36 -k 1,1 -k 2,2

Avec des lignes de 36 champs, ce sera illisible, même trié ; et
difficile à éditer -- est-ce ce que tu veux faire ? Mets chaque champ
sur une ligne, sépare les enregistrements avec "===" (par exemple),
édite et recrée un fichier csv. Ces quelques lignes pour la première
tâche :


#!/bin/bash

awk -F \; '
NR==1 {n = NF ; for (i=1; i<=NF; i++) f[i]=$(i); print ; next}

  1 {
    if (NF != n) {
      printf "--- error (%d != %d) :\n%s\n", NF, n, $0 >"/dev/stderr"
      next
    }
    for (i=1; i<=NF; i++) if ($(i)) print f[i] "," $(i)
    print "==="
  }
'



-Nicolas T.