Bonjour,
Encore désolée de vous embêter avec mes problèmes de newbie mais voici le dernier.
Dans un fichier, je veux isoler une chaîne de caractère a un emplacement prédéfini, et ensuite remplacer ce dernier par une autre chaîne prédéfinie elle aussi.
Okay, je m'explique un peu mieux.
Un exemple de fichier
Pour simplifier en premier lieu, imaginons que je veuille isoler par exemple le 6ème caractère si sa valeur est égale 5 alors le remplacer par un X, sur l'intégralité du fichier. J'ai beau eu lire et tester des trucs différents, la fonction sed doit m'échapper. Est-ce que je peux l'utiliser dans ce cas précis? Car j'ignore comment noter ma variable à remplacer pour qu'elle soit interprétée comme elle se doit.ABCD 1234 abc EFGH 5678 efg
Au départ j'avais imaginé quelque chose dans le genre
Mais le problème, ici je pense, c'est que ma valeur est interprétée comme une valeur définie et non à une place définie dans le fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 cat $fichier | while read line do var=$(echo $line | cut -c6) if [$var=5] then sed -e 's/$var/X/' $fichier #ici je n'ai volontairement pas variabiliser le X, une chose à la fois fi;done
Je tourne en rond, je ne trouve pas. J'ai tenté avec d'autres astuces lu dans le man, mais ça m'échappe. Le problème également de ce fichier, c'est que parfois quand il n'y a pas de data, c'est simplement remplacé par des blancs. Si je reprends mon exemple de fichier bidon, cela peut-être aussi ainsi:
Du coup, ça me parait délicat de déclarer que c'est la variable de tel bloc.ABCD 1234 abc 5678 efg
Si quelqu'un pouvait m'aiguiller et tout au moins me dire si c'est possible ou non avec cette méthode en expliquant pourquoi, je serai ravie et toute ouïe.
Partager