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 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 - 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
A voir également:

5 réponses

mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
Modifié le 3 mars 2021 à 13:44
Bonjour,

Le plus simple est sans doute d'écrire un petit programme en
python
qui 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.txt
et
fichier2.txt
soient 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
0
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 !
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
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
0
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
9 mars 2021 à 14:11
Super, bonne continuation :-)
0