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 06/06/2010, à 23:01

aromabar

[résolu]nombre ligne sur 2 fichiers

bonjour,
je voudrais mettre le meme nombre de ligne sur deux fichier
je m'explique un peut mieux
g deux fichiers, dont le début est different, mais lorsque je rajoute des lignes dans le premier, je voudrai les dupliquer dans le second
en gros un " RSYNC " mais pas destructif.
donc g trouvé la commande " WC -L " mais il me donne le nombre de ligne suivit du nom du fichier, ce qui m'arrange pas trop, du coup je ne pas faire la différence entre les deux fichier, ce qui aurai pu me permettre de faire un
" tail --ligne $diff >> fichier_2 "

peut etre je pars dans la mauvaise direction
donc je fais appel à vos lumieres.

Merci

Dernière modification par aromabar (Le 09/06/2010, à 20:10)

Hors ligne

#2 Le 06/06/2010, à 23:06

helly

Re : [résolu]nombre ligne sur 2 fichiers

Déja en pseudo code (je vais voir en vrai code comment tourner ça après)
afficher nombre de lignes fichier 1 →nb_ligne
afficher nombre de lignes fichier 2 →nb_ligne2
copier dans fichier 1 dans fichier 2 de (nb_ligne 2)+1 à nb_ligne
Ce qui donne (à la R.A.C.H.E) :

cat fichier1 | tail -(wc -l fichier2| cut -d " " -f1) >> fichier2

Dernière modification par helly (Le 06/06/2010, à 23:09)


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#3 Le 06/06/2010, à 23:09

AnsuzPeorth

Re : [résolu]nombre ligne sur 2 fichiers

aromabar a écrit :

g deux fichiers, dont le début est different, mais lorsque je rajoute des lignes dans le premier, je voudrai les dupliquer dans le second

echo "new line" | tee -a fichier1 >> fichier2

C'est pas ça que tu veux ?


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#4 Le 09/06/2010, à 19:44

aromabar

Re : [résolu]nombre ligne sur 2 fichiers

re,
pardon pour le temps mis
Merci à vous deux mais c plus dans l'esprit de Helly ce que je cherche, car c'est lors d'une sauvegarde que je veux que ça se mette en place
avec

cat fichier1 | tail -n `(wc -l fichier2| cut -d " " -f1)` >> fichier2

ça marche mieux mais reste plus que je trouve comment faire la "différence" entre fichier1 et fichier2 pour mettre en argument de

tail -n

Mon problème avance en tout cas
car si je fais un truc du genre

i=`(wc -l fichier1 | cut -d " " -f1)`
j=`(wc -l fichier2 | cut -d " " -f1)`
k=$i-$j   #le truc que je sais pas 'encore' faire
#et avec
cat fichier1 | tail -n $k  >> fichier2

je pense que le tour serai joué, même si dois y avoir plus simple

Dernière modification par aromabar (Le 09/06/2010, à 19:56)

Hors ligne

#5 Le 09/06/2010, à 20:09

aromabar

Re : [résolu]nombre ligne sur 2 fichiers

c'est bon j'ai trouvé big_smile:D:D

#compte nombre ligne dans fichier1 et fichier2
i=`(wc -l fichier2 | cut -d " " -f1)`
j=`(wc -l fichier1 | cut -d " " -f1)`

#difference entre les deux fichiers
k=$(( i -j -1 ))

#ecriture des lignes manquantes
cat fichier1 | tail -n $k >> fichier2

me reste plus qu'a vérif si $k est positif pour l'appliquer ou le dégager
Merci

Dernière modification par aromabar (Le 09/06/2010, à 20:15)

Hors ligne

#6 Le 09/06/2010, à 21:06

Totor

Re : [résolu]nombre ligne sur 2 fichiers

mouais...

{ head -<nombre de ligne spécifique fichier2> fichier2; sed '1,<nb ligne spécifique fichier1> d' fichier1; } > >(tee fichier2 >/dev/null)

pour exemple :

fichier1 a écrit :

fix1
fix2
fix3
a
b
c
d
e
f

fichier2 a écrit :

fix1
fix2
a
b
c

==>

{ head -2 fichier2; sed '1,3 d' fichier1; } > >(tee fichier2 >/dev/null)

A noter que l'utilisation de tee permet d'éviter d'utiliser un fichier temporaire


-- Lucid Lynx --

Hors ligne

#7 Le 10/06/2010, à 02:46

Watael

Re : [résolu]nombre ligne sur 2 fichiers

môa, j'préfère la solution de aromabar

#compte nombre ligne dans fichier1 et fichier2
i=$(wc -l <fichier2)
j=$(wc -l <fichier1)

#ecriture des lignes manquantes
tail -n $(( ( i - j ) - 1 )) fichier1 >>fichier2

smile

en bash4

readarray f1 <fichier1
readarray f2 <fichier2
i=${#f1[@]}
j=${#f2[@]}
tail -n $(( ( i - j ) - 1 )) fichier1 >>fichier2

Dernière modification par Watael (Le 10/06/2010, à 02:53)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#8 Le 10/06/2010, à 13:06

aromabar

Re : [résolu]nombre ligne sur 2 fichiers

yop,
Merci Watael pour le "bash4", déja que j'ai du mal avec la V3
mais bon je désespère pas big_smile

Hors ligne

#9 Le 10/06/2010, à 14:12

Totor

Re : [résolu]nombre ligne sur 2 fichiers

@Watael : Je suis surpris que tu n'aies pas proposé la solution à base de tableau en bash 3... wink

IFS=$'\n'f1=( $(<fichier1) )
IFS=$'\n'f2=( $(<fichier2) )
i=${#f1[@]}
j=${#f2[@]}
tail -n $(( ( i - j ) - 1 )) fichier1 >>fichier2

-- Lucid Lynx --

Hors ligne

#10 Le 10/06/2010, à 14:46

Watael

Re : [résolu]nombre ligne sur 2 fichiers

demande à aromabar! big_smile

en fait, j'ai séché sur l'IFS
merci

++

Dernière modification par Watael (Le 10/06/2010, à 14:48)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne