Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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,

credenhill a écrit :

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