#1 Le 10/06/2014, à 15:35
- McRbt
[Résolu] Concaténation de 2 variables sur la même ligne
Bonjour,
J'ai mis en place un script permettant d'analyser mes fichiers .csv.
Je souhaiterais que ce dernier inscrive la première ligne et la dernière ligne, du fichier passé en paramètres, sur la même ligne d'un fichier .log.
Voici les variables et leur commande :
FIRST_LINE=`head -1 "$CSV_IN" 2>/dev/null` #on intègre la première ligne dans une variable
LAST_LINE=`tail -1 "$CSV_IN" 2>/dev/null` #on intègre la dernière ligne dans une variable
Et la commande pour écrire ces variables dans le log :
echo -n "$FIRST_LINE;$LAST_LINE;" >> "$LOG_FILE"/"$CSV_NAME".log
Je voudrais voir apparaître un ';' juste après les deux variables.
J'obtiens bien mes deux lignes avec les ';' à la fin, mais pas sur la même ligne comme je le souhaite.
Dernière modification par McRbt (Le 17/06/2014, à 11:15)
Hors ligne
#2 Le 10/06/2014, à 15:55
- credenhill
Re : [Résolu] Concaténation de 2 variables sur la même ligne
hello
le fichier .csv contient des CR/LF de Windws ?
Hors ligne
#3 Le 10/06/2014, à 16:16
- McRbt
Re : [Résolu] Concaténation de 2 variables sur la même ligne
credenhill,
Si "CR/LF" correspond au retour chariot, alors normalement il n'y en a pas.
J'ai essayé pleins de choses, j'ai cherché pleins de choses mais j'aboutit rien.
Hors ligne
#4 Le 10/06/2014, à 16:28
- credenhill
Re : [Résolu] Concaténation de 2 variables sur la même ligne
vérifier avec cat -A le contenu du fichier
Hors ligne
#5 Le 10/06/2014, à 16:32
- McRbt
Re : [Résolu] Concaténation de 2 variables sur la même ligne
credenhill,
Après vérification de mon fichier, j'ai remarqué que quasi toutes les lignes (il y a plus de 5k lignes, j'ai jeté un bref coup d'oeil) ont ^M$ en fin de ligne.
Une idée ?
Hors ligne
#6 Le 10/06/2014, à 16:44
- credenhill
Re : [Résolu] Concaténation de 2 variables sur la même ligne
pour les supprimer de l'extraction (et pas du fichier), remplacer head et tail par
sed -n 's/\r//; 1p'
sed -n 's/\r//; $p'
Hors ligne
#7 Le 10/06/2014, à 18:53
- pingouinux
Re : [Résolu] Concaténation de 2 variables sur la même ligne
Bonjour,
Je n'arrive pas à reproduire le comportement décrit par McRbt en #1, que les lignes du fichier se terminent par '\n' ou '\r\n'.
Quel est le résultat de ces commandes
head -2 "$CSV_IN" | hd
tail -2 "$CSV_IN" | hd
Hors ligne
#8 Le 11/06/2014, à 11:24
- McRbt
Re : [Résolu] Concaténation de 2 variables sur la même ligne
credenhill,
pour les supprimer de l'extraction (et pas du fichier), remplacer head et tail par
J'ai essayé, mais ce ne donne rien, mais je pense les avoir mal placé.
Dernière modification par McRbt (Le 13/06/2014, à 15:10)
Hors ligne
#9 Le 11/06/2014, à 15:02
- credenhill
Re : [Résolu] Concaténation de 2 variables sur la même ligne
essayer
FIRST_LINE=$(sed -n 's/\r//;1p' "$CSV_IN")
LAST_LINE=$(sed -n 's/\r//; $p' "$CSV_IN")
echo -n "$FIRST_LINE;$LAST_LINE;"
Hors ligne
#10 Le 11/06/2014, à 17:40
- pingouinux
Re : [Résolu] Concaténation de 2 variables sur la même ligne
@McRbt : Je n'arrive toujours pas à reproduire le même résultat que toi. Pour être sûr de ce que tu obtiens, quel est le résultat de
echo -n "$FIRST_LINE;$LAST_LINE;" | hd
Hors ligne
#11 Le 17/06/2014, à 11:15
- McRbt
Re : [Résolu] Concaténation de 2 variables sur la même ligne
Bonjour,
Tout d'abord, désolé pour le temps de réponse, j'étais sur un autre projet.
La commande de credenhill fonctionne à merveille.
FIRST_LINE=$(sed -n 's/\r//;1p' "$CSV_IN")
LAST_LINE=$(sed -n 's/\r//; $p' "$CSV_IN")
echo -n "$FIRST_LINE;$LAST_LINE;"
Merci à vous, je passe en résolu.
Hors ligne