Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix
Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/09/2011, 10h49   #1
Invité de passage
 
Inscription : novembre 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 12
Points : 4
Points : 4
Par défaut traitement de fichier avec AWK

Bonjour,

j'ai ce script

Code :
nawk -F " " 'FILENAME==ARGV[1]{x[$1]=1; next} x[$1]{OFS = " " ;print $0 > "result_1"} !x[$1]{OFS = " " ;print $0 > "result_2" } ' fichier_1.txt fichier_2.txt

quelqu'un peut il s'il vous plait m'expliquer ce qu'il fait car je débute en shell unix

que représente : x[$1]=1 ?

merci pour votre aide
Morel26 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/09/2011, 14h17   #2
Membre confirmé
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 181
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 181
Points : 267
Points : 267
Citation:
que représente : x[$1]=1 ?
A priori je dirais que cela affecte la valeur 1 à la ligne d'identifiant "1er champs de la ligne" du tableau x.
Jean.Cri1 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/09/2011, 20h31   #3
Invité de passage
 
Inscription : novembre 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 12
Points : 4
Points : 4
En fait ce qu'on m' a expliqué c'est que ce code sépare les lignes du fichier_2.txt.

il va mettre dans "result_1" les lignes du fichier_2.txt pésentent dans fichier_1.txt et le reste il le met dans "result_2"

Mais j'ai du mal à comprendre comment il fonctionne pour faire cette séparation.
Morel26 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/09/2011, 23h06   #4
Membre Expert
 
Avatar de jlliagre
 
Inscription : juin 2007
Messages : 967
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2007
Messages : 967
Points : 1 370
Points : 1 370
Ce n'est pas du awk de débutant.

Voici comment comprendre le code:

Si le fichier traité est fichier_1.txt, mettre dans un tableau associatif le premier mot de chacune des lignes.

Sinon (traitement du fichier_2.txt),
mettre dans result_1 les lignes de fichier_2.txt dont la valeur de la première colonne est aussi présente dans le tableau précédemment crée, c'est à dire dont la première colonne existe dans fichier_1.txt, dans le cas contraire (la première colonne contient une valeur absente de fichier_1.txt), mettre la ligne dans result_2.
__________________
ɹǝsn *sıɹɐlos*
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h39.


 
 
 
 
Partenaires

Hébergement Web