Sed : insertion lettre a chaque ligne
Résolu
nicdu40
Messages postés
27
Statut
Membre
-
nicdu40 Messages postés 27 Statut Membre -
nicdu40 Messages postés 27 Statut Membre -
Bonjour,
alors voila ce que je cherche a faire sans succés:
inserrer chaque lettre du fichier B dans A a un emplacement défini
Fichier A:
ABCDEF
Fichier B:
A
B
C
ce que je cherche a faire:
ABCADEF
ABCBDEF
ABCCDEF
j'ai essayé :
#! /bin/bash
while read line
do
for i in $(sed ':z;N;$! bz;s/\n/ /g' B)
do
echo "${line}${i}"
done
done < A
mais ça me met tout a la fin,
et sed sed 's/^../&C/' par exemple me met le C apres les 2 premiers carracteres mais je n'arrive pas a l'adapter. merci de votre aide
alors voila ce que je cherche a faire sans succés:
inserrer chaque lettre du fichier B dans A a un emplacement défini
Fichier A:
ABCDEF
Fichier B:
A
B
C
ce que je cherche a faire:
ABCADEF
ABCBDEF
ABCCDEF
j'ai essayé :
#! /bin/bash
while read line
do
for i in $(sed ':z;N;$! bz;s/\n/ /g' B)
do
echo "${line}${i}"
done
done < A
mais ça me met tout a la fin,
et sed sed 's/^../&C/' par exemple me met le C apres les 2 premiers carracteres mais je n'arrive pas a l'adapter. merci de votre aide
5 réponses
-
Salut,
$ cat A ABCDEF $ cat B A B C $ A=$(<A) $ sed 's/.*/'"${A:0:3}"'&'"${A:3}"'/' B ABCADEF ABCBDEF ABCCDEF $ -
hello
avec awk$ awk 'FNR==NR{a=$0; next} {print substr(a,1,3) $0 substr(a,4)}' A B ABCADEF ABCBDEF ABCCDEF $ -
Salut,
je ne comprends pas trop, pourquoi tu fais une 2eme boucle imbriquée dans la première ?
$ -
C'est vrai que c'est pas évident de lire 2 fichiers en même temps en bash, il y a sans doute une commande bien / un enchainement de commandes qui va bien pour le faire, mais que je ne connais pas
J'aurais fait quelque chose de ce genre :
#!/bin/bash
exec 5<A 6<B
position=3
while read -u 5 lineA
do
read -u 6 lineB
echo ${lineA:0:$position}$lineB${lineA:$position}
done -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci !!!! j'ai utilisé la methode sed ... encore un grand merci , et quelle rapidité!