Commande shell

Résolu
th.deudon Messages postés 399 Date d'inscription   Statut Membre Dernière intervention   -  
th.deudon Messages postés 399 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous, me revoila ;)

Existe il une commande permettant de print le nom du fichier dans lequel on est sur awk?

Il me semble que la commande match fera l'affaire pour la prochaine question, mais je n'ai pas compris son fonctionnement
il faudrait que j'arrive à concaténer d'une façon spéciale : deux fichiers
la ligne du fichier 2 doit aller à celle du fichier 1 contenant son élément ( $i ) si cette dernière a le même élément en $y , j'espère avoir été clair, merci :)
A voir également:

1 réponse

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
awk '{print FILENAME}'
montre un exemple de données avant - après
1
th.deudon Messages postés 399 Date d'inscription   Statut Membre Dernière intervention   15
 
alors,
fichier 1:
blabla blibli toto1 bleble
blabla blibli oto2 bleble
blabla blibli toto3 bleble
blabla blibli toto4 bleble
blabla blibli toto5 bleble
fichier 2:
1 2 3 xxx/toto3.yyy
4 5 6 xxx/toto2.yyy
fichier final :
blabla blibli toto1 bleble
blabla blibli toto2 bleble 4 5 6
blabla blibli toto3 bleble 1 2 3
blabla blibli toto4 bleble
blabla blibli toto5 bleble
0
th.deudon Messages postés 399 Date d'inscription   Statut Membre Dernière intervention   15
 
parfait, petite parenthèse : il fa print autant de fois qu'il y a de ligne ( donc a faire en begin ou en end )
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
essayer
$ awk 'FNR==NR {t[++n]=$0; next} {printf $0; for(m=1; m<=n;){split(t[m++], a); if(a[4] ~ "/" $3 ".")printf OFS a[1] OFS a[2] OFS a[3]} print ""}'  fichier2 fichier1
blabla blibli toto1 bleble
blabla blibli toto2 bleble 4 5 6
blabla blibli toto3 bleble 1 2 3
blabla blibli toto4 bleble
blabla blibli toto5 bleble
$ 
0
th.deudon Messages postés 399 Date d'inscription   Statut Membre Dernière intervention   15
 
aie, désolé les fichiers ne peuvent plus etre de la meme forme :/
fichier 1
A B toto C D
...
fichier 2
.//blabla/blibli/toto.bloblo 4 5
fichier 3
A B toto C D 4 5


vraiment desole :( vu que j'ai pas compris ton code, je sais pas le transformer ^^
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
a[4] devient a[1] (position de /xxx/toto.xxx) , on imprime $2 et $3
awk 'FNR==NR {t[++n]=$0; next} {printf $0; for(m=1; m<=n;){split(t[m++], a); if(a[1] ~ "/" $3 ".")printf OFS a[2] OFS a[3] } print ""}' 
0