Remplacer un champs d'un fichier par un autre champs d'un autre fichier
Résolu/Fermé
dino
-
Modifié le 25 févr. 2021 à 16:31
mamiemando Messages postés 33535 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 février 2025 - 9 mars 2021 à 14:11
mamiemando Messages postés 33535 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 février 2025 - 9 mars 2021 à 14:11
Bonjour tout le monde ,
J'ai 2 fichiers ,fic1 et fic2 ( plus de 900 caractères sur chaque ligne chacun ) , je voudrais pour chaque ligne du fichier fic1 ,remplacer le champs 420 a 428( sur 8 caractères) par un champs du même n° de ligne qui est du 120 a 128 du fichier fic2.
Merci beaucoup pour votre aide
J'ai 2 fichiers ,fic1 et fic2 ( plus de 900 caractères sur chaque ligne chacun ) , je voudrais pour chaque ligne du fichier fic1 ,remplacer le champs 420 a 428( sur 8 caractères) par un champs du même n° de ligne qui est du 120 a 128 du fichier fic2.
Merci beaucoup pour votre aide
A voir également:
- Remplacer un champs d'un fichier par un autre champs d'un autre fichier
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Ouvrir un fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
5 réponses
mamiemando
Messages postés
33535
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 février 2025
7 828
Modifié le 3 mars 2021 à 13:44
Modifié le 3 mars 2021 à 13:44
Bonjour,
Le plus simple est sans doute d'écrire un petit programme en
Voici comment tu peux faire en python3.
fichier1.txt
fichier2.txt
Mêmes remarques.
toto.py
Résultat
En admettant que
Pour sauver le résultat dans
Dans ton cas, il faut au préalable corriger les valeurs de i1, i2, j1, j2 . Remplace :
... par :
Bonne chance
Le plus simple est sans doute d'écrire un petit programme en
pythonqui ferait le travail.
Voici comment tu peux faire en python3.
fichier1.txt
ABCDEF
GHIJKL
MNOPQR
fichier2.txt
abcdef
ghijkl
mnopqr
Mêmes remarques.
toto.py
#!/usr/bin/env python3 lines1 = None with open("fichier1.txt") as f1: lines1 = [line.rstrip() for line in f1.readlines()] lines2 = None with open("fichier2.txt") as f2: lines2 = [line.rstrip() for line in f2.readlines()] assert lines1 assert lines2 i1 = 3 j1 = 5 i2 = 2 j2 = 4 for (line1, line2) in zip(lines1, lines2): line1 = line1.split(" ") line2 = line2.split(" ") print(" ".join(line1[:i1] + line2[i2:j2] + line1[j1:]))
Résultat
En admettant que
toto.py,
fichier1.txtet
fichier2.txtsoient dans le même dossier, en lançant depuis ce dossier la commande
python3 toto.py, on obtient :
ABCcdF
GHIijL
MNOopR
Pour sauver le résultat dans
fichier3.txt:
python3 toto.py > fichier3.txt
Dans ton cas, il faut au préalable corriger les valeurs de i1, i2, j1, j2 . Remplace :
i1 = 3 j1 = 5 i2 = 2 j2 = 4
... par :
i1 = 420 j1 = 428 i2 = 120 j2 = 128
Bonne chance
Bonjour,
Merci beaucoup pour votre réponse , mais je suis sous unix : AIX 7.1, je n'ai pas Python , et je ne suis pas "root" pour l'installer.
encore une fois merci !
Merci beaucoup pour votre réponse , mais je suis sous unix : AIX 7.1, je n'ai pas Python , et je ne suis pas "root" pour l'installer.
encore une fois merci !
mamiemando
Messages postés
33535
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 février 2025
7 828
Modifié le 8 mars 2021 à 14:45
Modifié le 8 mars 2021 à 14:45
Bonjour,
Tu peux écrire le même genre de script avec un langage disponible sur ton AIX (e.g. en awk ou en shell). C'est un sensiblement plus compliqué à écrire cependant c'est pour ça que j'ai donné une solution en python.
Autre solution, tu transformes ton fichier sur un autre PC sur lequel tu pourras installer ce que tu veux. En particulier, tu peux utiliser python via un navigateur (e.g. google colab), c'est à mon avis plus simple que de galérer à écrire le script en shell, surtout si tu n'as besoin de faire cette conversion qu'une fois pour toute...
Bonne chance
Tu peux écrire le même genre de script avec un langage disponible sur ton AIX (e.g. en awk ou en shell). C'est un sensiblement plus compliqué à écrire cependant c'est pour ça que j'ai donné une solution en python.
Autre solution, tu transformes ton fichier sur un autre PC sur lequel tu pourras installer ce que tu veux. En particulier, tu peux utiliser python via un navigateur (e.g. google colab), c'est à mon avis plus simple que de galérer à écrire le script en shell, surtout si tu n'as besoin de faire cette conversion qu'une fois pour toute...
Bonne chance
J'ai reussi a installer Python sur mon PC , charger mes fichiers du serveur AIX vers mon PC, et dérouler le scripts , ca marche !!.
Merci beaucoup
Merci beaucoup
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mamiemando
Messages postés
33535
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 février 2025
7 828
9 mars 2021 à 14:11
9 mars 2021 à 14:11
Super, bonne continuation :-)