Comparer les lignes d'un fichier .csv
Bonjour,
Je sollicite votre aide car je ne trouve pas de solution à mon problème.
J'ai un fichier csv qui contient les données suivantes:
Code:
1 2 3 4
| 20062012;0810
20062012;1812
21062012;0836
21062012;2035 |
Qui correspondent à date;heure
Je souhaite comparer la premier valeur de la ligne i avec la premier valeur de la ligne i+1 de mon csv.
Si elles sont identiques, stocker dans un fichier "ligne_i-valeur_1;ligne_i-valeur_2;ligne_i+1-valeur2"
Voici mon code, je passe en paramètre ($1) le nom de mon fichier csv
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| # !/bin/bash
for line in `cat $1`
do
if [ `echo $line | awk -F";" '{ print $1 }'` = `echo $(( line+1 )) | awk -F";" '{ print $1 }'` ]; then
DATE=`echo $line | awk -F";" '{ print $1 }'`
DEBUT=`echo $line | awk -F";" '{ print $2 }'`
FIN=`echo $(( line+1 )) | awk -F";" '{ print $2 }'`
echo "$DATE;$DEBUT;$FIN" >> ok.txt
fi
done |
J'obtiens le retour suivant
Code:
1 2 3 4 5 6 7 8
| /test.sh: line 7: 20062012;0810: syntax error: invalid arithmetic operator (error token is ";0810")
./test.sh: line 7: [: 20062012: unary operator expected
./test.sh: line 7: 20062012;1812: syntax error: invalid arithmetic operator (error token is ";1812")
./test.sh: line 7: [: 20062012: unary operator expected
./test.sh: line 7: 21062012;0836: syntax error: invalid arithmetic operator (error token is ";0836")
./test.sh: line 7: [: 21062012: unary operator expected
./test.sh: line 7: 21062012;2035: syntax error: invalid arithmetic operator (error token is ";2035")
./test.sh: line 7: [: 21062012: unary operator expected |
J'en déduis donc qu'il essaye d'ajouter 1 à l'heure mais j'ai du mal à comprendre pourquoi.
Merci d'avance