Bonjour,
Je voudrais fusionner deux lignes prévenant de deux fichiers différents.
C'est pas la même chose que fait la commande join.
Exemple:
fichier1:
aaa ccc eee
fichier2:
bbb ddd
le resultat:
aaabbbcccdddeee
Merci de votre aide
Bonjour,
Je voudrais fusionner deux lignes prévenant de deux fichiers différents.
C'est pas la même chose que fait la commande join.
Exemple:
fichier1:
aaa ccc eee
fichier2:
bbb ddd
le resultat:
aaabbbcccdddeee
Merci de votre aide
Bonjour,
les fichiers ont un nombre de lignes identique ?
avec awk :
lire les lignes de chaque fichier, utiliser spit() avec des noms de tableaux différents, et reconstruire la ligne souhaitée avec chaque élément des tableaux
...
?
un coup de baguette magique, quoi
Bonjour,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $ cat quinconce1.txt aaa ccc eee $ cat quinconce2.txt bbb ddd $ awk 'NR==FNR{a1[FNR]=$1;a2[FNR]=$2;next;} {print $1""a1[FNR]""$2""a2[FNR]""$3;}' quinconce2.txt quinconce1.txt aaabbbcccdddeee $
Bonjour,
Ou un trie lexicale:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $ cat f1.txt aaa ccc eee $ cat f2.txt bbb ddd $ awk -v RS=" " '$0=$1' f1.txt f2.txt | sort | awk -v ORS="" '$0=$1;END{print "\n"}' aaabbbcccdddeee
Ou alors en pur bash:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 for i in a b c d e do for j in 1 2 3 do echo -n "$i" done done echo ""
parce que je privilégie spontanément l'emploi d'un seul outil plutôt que d'utiliser des pipespourquoi faire simple quand...
mais pour ce que tu fais de awk, je recommanderais davantage un appel (plus léger ?) à cut.
"spontanément" est le terme de trop. Peut-être que parfois, deux outils appelés simplements (même liés par un pipe) seront à privilégier plutôt qu'utiliser un outil plus complexe et avec alors des instructions là aussi plus complexes. Un code est plus souvent lu qu'écrit et ça devrait aussi entrer en considération...
Ca j'avais essayé (je présume que tu penses à ceci: paste fichier1 fichier2 |cut -f1,4,2,5,3 -d' '). Le problème, c'est que si tu demandes à cut le champ 2,1 ; il te les donne mais uniquement dans l'ordre d'origine (champ 1 puis champ 2). Et donc on se retrouve avec un simple paste...
c'est moi, dans un élan spontané, qui emploie un seul outil. Je ne présume pas du comportement de telle ou telle manière de faire."spontanément" est le terme de trop.
c'est quoi ce délire ? cut coupe (affiche certains champs, mais pas d'autres), mais ne permet pas de réorganiser les champs !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 echo "a b" | cut -f 2,1 a b
Attention à ne pas oublier le délimiteur (mais le résultat reste le même)
Ben que puis-je te dire ? Remarque, manifestement ce besoin n'est pas avéré (la preuve: tu n'as jamais cherché à l'utiliser pour réorganiser les champs sinon tu t'en serais rendu compte bien avant aujourd'hui )
Donc en effet ce n'est pas son rôle. Ce qui n'est pas très grave puisque pour les combiner les rôles de chacun et produire des résultats élaborés on a les... pipes
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager