# Manipulation de fichiers

**URL:** <https://www.debian-fr.org/t/manipulation-de-fichiers/71119>\
**Category:** Programmation\
**Created:** [Septembre 28, 2016, 7:48 UTC](https://www.debian-fr.org/t/manipulation-de-fichiers/71119 "2016-09-28T07:48:03Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Llenlewag](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/439d5e/32.png) [@Llenlewag](https://www.debian-fr.org/u/Llenlewag)\
**Post date:** [Septembre 28, 2016, 7:48 UTC](https://www.debian-fr.org/t/manipulation-de-fichiers/71119/1 "2016-09-28T07:48:04Z")

</div>

Bonjour à tous,  
Je vous explique un peu mon souci. Je dois envoyer par mail les identifiants de connexion à des parents pour ceux qui ont fourni un mail et par courrier pour les autres.  
J’ai actuellement deux fichiers .csv car l’EN n’est pas tout à fait capable d’unifier ses bases de données.  
L’un contient les identifiants, mot de passe, adresse, nom, prénom et UID.  
L’autre contient les mails (ou vide), nom prénom et UID.  
J’essaye d’unifier les deux avec la commande  
`join -a 1 -t $',' -11 -21 -o 1.3,1.4,1.5,1.6,1.7,1.8,1.9,1.11,1.12,2.2 export_parents.csv Exp_responsables.csv > resultats.csv`  
La première colonne de chaque fichier correspond à l’UID qui est unique contrairement aux noms. Les chiffres correspondent bien aux colonnes que je veux garder dans chaque fichier mais je n’ai que le premier mail qui apparaît car la commande s’interrompt à la première ligne qui n’est pas commune aux deux fichiers. Comment outrepasser ce problème?

Deuxième problème. Je voudrais séparer en deux fichiers différents les parents qui ont un mail pour le publipostage et ceux qui n’en ont pas pour imprimer les lettres et les envoyer. J’essaye avec un petit script bash :

```bash
 #!/bin/bash

while read UID Civilite Nom Prenom E F G H I J K L M N O P Q Email
do
 case $Email in
 ${#1} ) echo $UID $Email >>parents_connectes.csv ;;
 *) 
 esac
done <Exp_responsables.csv

```

Ca me renvoie l’erreur suivante : `ligne 3: UID : variable en lecture seule`  
Un problème dans le fichier j’imagine mais je sèche.

Merci d’avance.

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Septembre 28, 2016, 10:13 UTC](https://www.debian-fr.org/t/manipulation-de-fichiers/71119/2 "2016-09-28T10:13:17Z")

</div>

> [@Llenlewag](#):
>
> Ca me renvoie l’erreur suivante : `ligne 3: UID : variable en lecture seule`

`UID` est un nom de variable réservé dans `bash`.

---

<div class="post-metadata">

**Author:** ![debianhadic](https://www.debian-fr.org/user_avatar/www.debian-fr.org/debianhadic/32/3870_2.png) [@debianhadic](https://www.debian-fr.org/u/debianhadic)\
**Post date:** [Septembre 28, 2016, 10:44 UTC](https://www.debian-fr.org/t/manipulation-de-fichiers/71119/3 "2016-09-28T10:44:21Z")

</div>

Erreur classique qui te bouffe une journée !  
Les messages d’erreurs sont parfois déroutants, trop dur a écrire “nom de variable réservée” ??  
J’ai eu le même problème avec Angular-cli, pour info n’essayez pas de faire une application “test” 🙂

---

<div class="post-metadata">

**Author:** ![Llenlewag](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/439d5e/32.png) [@Llenlewag](https://www.debian-fr.org/u/Llenlewag)\
**Post date:** [Septembre 28, 2016, 3:43 UTC](https://www.debian-fr.org/t/manipulation-de-fichiers/71119/4 "2016-09-28T15:43:53Z")

</div>

Merci pour vos réponses effectivement l’erreur est bête et j’aurais dû m’en rappeler. 😓

Bon j’ai régler mon premier problème de tri avec sort puis avec join.  
Il me faut maintenant trier ceux qui ont un compte déjà activé et les autres. Je reviens avec mon script bash :

```bash
 #!/bin/bash

while read Civilite Nom Prenom Adres1 CP Ville Email N Password Username Mail
do
case $N in
N ) echo $Civilite $Nom $Prenom $Adres1 $CP $Ville $Email $Password $Username $Mail >> parents_non_connectes.csv ;;
O)
esac
done <resultats.csv

```

Dans le fichier resultat.csv se trouvent donc les colonnes civilite nom,etc. et la colonne N contient soit N si ils ne sont pas activés soit O. Sauf que le fichier parents\_non\_connectes.csv ne se crée pas. Je ne sais pas trop quoi en penser.  
Merci d’avance pour vos réponses.

---

<div class="post-metadata">

**Author:** ![Llenlewag](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/439d5e/32.png) [@Llenlewag](https://www.debian-fr.org/u/Llenlewag)\
**Post date:** [Septembre 29, 2016, 9:13 UTC](https://www.debian-fr.org/t/manipulation-de-fichiers/71119/5 "2016-09-29T09:13:14Z")

</div>

Bonjour,  
en fait je me prends la tête pour rien. Au lieu de N et O j’ai collé NnNNN et O et j’ai utilisé la commande grep à partir de cet item. Pourquoi faire compliqué quand on peut faire simple?
