Probleme avec le script shell
Résolu
amsy10
Messages postés
78
Statut
Membre
-
amsy10 Messages postés 78 Statut Membre -
amsy10 Messages postés 78 Statut Membre -
Bonjour,
Bonjour
je voudrais une recherche dans un fichier par rapport un fichier quand je lance le script il me cherche la derniere ligne du fichier ce qui n'est pas normale.exemple: fichier a:le contenu
111111
222222
333333
et le fichier b
000000,2457879
111111,9586245
222222,4569874
333333,4569874
444444,1236541
555555,4562258
voila les deux fichier a doit forcement se trouver dans le fichier b
c'est comme ca que je lance le script.
./SERIAL.sh fichier a fichier b &
et il ne m'envoi que la derniere ligne
voila mon script
#!/bin/bash
f1=$1
f2=$2
for i in 'cat $f1'
do
grep $i $f2 | awk -F, '{print $2","$1}' >> Code_en_serie.txt
done
cordialement
Bonjour
je voudrais une recherche dans un fichier par rapport un fichier quand je lance le script il me cherche la derniere ligne du fichier ce qui n'est pas normale.exemple: fichier a:le contenu
111111
222222
333333
et le fichier b
000000,2457879
111111,9586245
222222,4569874
333333,4569874
444444,1236541
555555,4562258
voila les deux fichier a doit forcement se trouver dans le fichier b
c'est comme ca que je lance le script.
./SERIAL.sh fichier a fichier b &
et il ne m'envoi que la derniere ligne
voila mon script
#!/bin/bash
f1=$1
f2=$2
for i in 'cat $f1'
do
grep $i $f2 | awk -F, '{print $2","$1}' >> Code_en_serie.txt
done
cordialement
5 réponses
-
hello
on peut tout faire dans awk$ awk -F, 'NF==1 {x[$1]=$1} NF > 1 {if(!x[$1])print $2 FS $1}' fichiera fichierb 2457879,000000 1236541,444444 4562258,555555 $ -
je n'ai pas compris ton script le NF c'est quoi au juste
tu as compri mon souci ce awk pourra l'executer -
Salut,
Y'a une erreur de syntaxe dans ton code :
for i in 'cat...'
à remplacer par
for i in $(cat $f1)
#!/bin/bash f1=$1 f2=$2 for i in $(cat $f1) do grep $i $f2 | awk -F, '{print $2","$1}' >> Code_en_serie.txt done -
-
Bizarre ;-\
Quel système ?
$ ls a b foo* $ cat a 111111 222222 333333 $ cat b 000000,2457879 111111,9586245 222222,4569874 333333,4569874 444444,1236541 555555,4562258 $ cat foo #!/bin/bash f1=$1 f2=$2 for i in $(cat $f1) do grep $i $f2 | awk -F, '{print $2","$1}' >> Code_en_serie.txt done $ ./foo a b $ cat Code_en_serie.txt 9586245,111111 4569874,222222 4569874,333333 $
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -