jointure entre 2 fichiers (Résolu) [SHELL] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 23-02-2016 à 19:35:30
tu peux faire une boucle
tant que lecture
faire
pourligne chercher pattern dans ficb
fin injection fica
ne pas prendre peur
francois@:~$ echo a > fica |
$REPLY est la varable de read
on a bien un fichier resultat avec a b c venant de fica et surtout le b de ficb qui ont bien fusionnes
si tu narrives pas a adapter tu poux donner un exemple de ligne de chaque fichier
et le resultat voulu ..
J'ai 2 soucis :
1) dans ficb cette référence se trouve en position 90
avec ta methode tu est obliger de connaitre la position... grep cherche un pattern sans specifier de position
2) j'ai essayer malgrè le fiat que le fichier ficb ne soit pas trié plusieurs options de join mais je n'ai rien en sortie.
vu ton besoin un fichier resultat etait bien la bonne solution mais un join ...pas sur
Marsh Posté le 24-02-2016 à 03:19:32
salut,
ce serait quand même plus clair avec un échantillon représentatif des deux fichiers, et la sortie attendu pour l'échantillon.
Marsh Posté le 24-02-2016 à 11:38:47
Merci pour vos réponses
par exemple dans le fica j'ai la plus part du temps 7 chiffres suivis d'espaces mais la zone réservée est sur 32 alphanumérique:
|
dans ficb j'ai :
|
J'ai testé ce que kuroineko_fr a donné(en enlevant le "echo $REPLY" ) mais dans le fichier résultat, je n'ai que la dernière occurrence trouvée.
J'ai essayé de déplacé la redirection vers le fichier Résultat :
while read
do
grep $REPLY Ficb > Res
done < Fica
J'ai des lignes blanches et la dernière occurrence trouvée.
Marsh Posté le 24-02-2016 à 12:16:09
oui ma faute j ai pas explique ca... dans lexemple avais qu un resultat attendu
>> alimente le fichier
> creer un nouveau fichier
donc avec un >> apres le grep ca devrait aller
Marsh Posté le 24-02-2016 à 14:21:03
J'ai toujours le même problème : grep ne trouve que la dernière occurrence alors que je sais que tout ce qui est dans mon fica est présent dans ficb
J'ai trouvé que le résultat de la dernière commande exécutée est dans la variable $?
Citation : |
J'ai ca en résultat, il n'y a que la dernière ligne qui est trouvée!
Citation : |
Marsh Posté le 24-02-2016 à 15:01:46
J'ai modifié mon fichier Fica de plusieurs façon pour arriver à ce que le grep ne trouve rien !
J'utilise ultraedit en ftp pour créer et modifier mes fichiers.
Est-ce que mon problème ne viendrai pas de là avec des histoire de caractères de fin de ligne ou fin de fichier spécifique à unix ?
en vue Hexa, j'ai 0D et 0A en fin de chaque ligne sauf la dernière qui est 0A
Marsh Posté le 24-02-2016 à 15:19:48
Trouvé !
J'ai sauvegardé mon fichier source en ASCII au lieu de binaire avec ultra edit et j'ai trouvé toutes mes références !
Merci beaucoup pour l'aide !
Marsh Posté le 23-02-2016 à 15:39:37
Bonjour,
Je suis débutant en shell.
J'ai 2 fichiers que l'on va appeler fica et ficb
dans le fica, j'ai une référence sur 32 caractères.
Mon but est de ressortir toutes les lignes de ficb qui contiennent les références présentes dans fica
J'ai réussi à trier mon fica
J'ai 2 soucis :
1) dans ficb cette référence se trouve en position 90
je fais la commande suivante : sort -90 +122 ficb > ficb_trie
mais cela ne trie pas mon fichier
2) j'ai essayer malgrè le fiat que le fichier ficb ne soit pas trié plusieurs options de join mais je n'ai rien en sortie.
join fica ficb > result
join -j11 fica ficb > result
Est-ce qu'un pro peu m'aider svp ?
D'avance Merci
Message édité par zoul72 le 24-02-2016 à 15:20:07