The UNIX and Linux Forums  


Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Changer une colonne du fichier délimité à largeur fixe colonne colonne manneni Prakash De programmation et de script Shell 5 06-22-2009 06:27 AM
deux files.say a et b.both depuis longtemps columns.i voulez faire correspondre la colonne frontières 1er fichier w TRUPTI UNIX pour les nuls Questions et réponses 4 10-17-2008 02:17 PM
Insérer la première ligne d'un fichier à la première colonne des fichiers restants a_artha De programmation et de script Shell 5 07-28-2008 06:47 AM
Comment faire pour vérifier des valeurs Null dans un fichier, colonne par colonne, si les colonnes ne sont pas NULL Mandab De programmation et de script Shell 7 03-15-2008 09:57 AM
joindre plusieurs cols de fichiers dans un fichier vbshuru De programmation et de script Shell 2 11-20-2003 12:52 PM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 06-30-2009
bigsmile bigsmile is offline
Registered User
  
 

Date d'inscription: juin 2009
Messages: 4
Question Rejoignez les 3 fichiers à l'aide de la colonne clé dans un fichier de mapping

Je suis nouveau script de shell UNIX. Je suis récemment générant un excellent rapport en UNIX (fichier avec délimiteur est fine). Comment dois-je faire un script pour le faire?

1 fichier vient de se joindre à une sortie de commande UNIX, la deuxième d'une autre commande UNIX, et le troisième à partir d'une requête de base de données. La clé columes de l'ensemble de ces 3 fichiers proviennent d'un fichier de mapping. Il est constitué de la manière suivante:

MappingFile:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
tâche1 a_name1
job2 c_name2
tâche3 b_name3
job4 e_name4

file1_toJOIN:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
b_name3 12:00:03 15:00:09
e_name4 10:30:00 11:00:00
c_name2 09:40:00 10:12:00
a_name1 22:00:00 23:00:00

file2_toJOIN:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
job2 tom 22
tâche1 dan 18
job4 jim 25
tâche3 kim 20

le format de feuille de calcul pour générer:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
tâche1 22:00:00 23:00:00 01:00:00 dan 18
......

Vous remercions de votre aide!
  #2 (permalink)  
Old 07-01-2009
prasperl prasperl is offline
Registered User
  
 

Date d'inscription: juin 2009
Posts: 22
Essayez ceci!

try this

for i in `cat map | awk 'BEGIN (FS \u003d" ") (print $ 1)'`
faire
$ i \u003d mapkey1
mapkey2 \u003d `cat map | grep $ mapkey1»
mapkey2 \u003d `echo $ mapkey2 | awk 'BEGIN (FS \u003d" ") (print $ 2)'`
file1key \u003d `cat fichier1 | grep $ mapkey2»
file1key \u003d `echo $ file1key | awk 'BEGIN (FS \u003d" ") (print $ 2, $ 3)'`
file2key \u003d `cat fichier2 | grep $ mapkey1»
file2key \u003d `echo $ file2key | awk 'BEGIN (FS \u003d" ") (print $ 2, $ 3)'`
echo $ i $ file1key $ file2key
fait


carte - votre fichier de carte
file1 - votre file1_toJOIN
file2 - file2_toJOIN:

L'o / pi est obtenu:
tâche1 22:00:00 23:00:00 dan 18
job2 09:40:00 10:12:00 tom 22
tâche3 12:00:03 15:00:09 kim 20
job4 10:30:00 11:00:00 jim 25
  #3 (permalink)  
Old 07-01-2009
summer_cherry summer_cherry is offline Forum Advisor  
Registered User
  
 

Date d'inscription: juin 2007
Lieu: Beijing Chine
Posts: 1089

Code:
nawk 'NR==FNR{
arr[$1]=$2
brr[$2]=$1
}
NR!=FNR{
	if (arr[$1]=="")
		brr[$1]=sprintf("%s %s",$2,$3)
	else
		print $1" "brr[arr[$1]]" "$2" "$3
}' map file1 file2

  #4 (permalink)  
Old 07-02-2009
bigsmile bigsmile is offline
Registered User
  
 

Date d'inscription: juin 2009
Messages: 4
Smile Rejoignez les 3 fichiers à l'aide de clés colume dans un fichier de mapping

Appréciez vous deux.

J'ai essayé le premier script. Il fonctionne parfaitement. Je suis un peu difficile à comprendre ensemble, comme un script shell débutant. Mais je vais essayer demain, car il est vraiment compact. Je souhaite utiliser dans l'avenir.
  #5 (permalink)  
Old 07-03-2009
prasperl prasperl is offline
Registered User
  
 

Date d'inscription: juin 2009
Posts: 22
Avec des commentaires pour mieux comprendre

# Ouverture du fichier
for i in `cat map | awk 'BEGIN (FS \u003d" ") (print $ 1)'`
faire

# Colonne1 de fichier de carte est la clé de fichier2
$ i \u003d mapkey1

mapkey2 \u003d `cat map | grep $ mapkey1»

# Colonne2 de fichier de carte est la clé de file1

mapkey2 \u003d `echo $ mapkey2 | awk 'BEGIN (FS \u003d" ") (print $ 2)'`

# Sélection de valeurs file1 basée sur des fichiers de la carte mapkey2
file1key \u003d `cat fichier1 | grep $ mapkey2»
file1key \u003d `echo $ file1key | awk 'BEGIN (FS \u003d" ") (print $ 2, $ 3)'`

# Sélection de valeurs file2 basée sur mapkey1 de fichier de carte
file2key \u003d `cat fichier2 | grep $ mapkey1»
file2key \u003d `echo $ file2key | awk 'BEGIN (FS \u003d" ") (print $ 2, $ 3)'`

# Diplay les résultats
echo $ i $ file1key $ file2key
fait
  #6 (permalink)  
Old 07-04-2009
bigsmile bigsmile is offline
Registered User
  
 

Date d'inscription: juin 2009
Messages: 4
Je vous remercie, Prasperl.

J'ai utilisé ksh, pour une raison quelconque, il m'a donné awk Syntex erreur. Après avoir enlevé seperator domaine, il me laisse passer. Connaissez-vous la raison?
  #7 (permalink)  
Old 07-05-2009
prasperl prasperl is offline
Registered User
  
 

Date d'inscription: juin 2009
Posts: 22
Pourriez-vous s'il vous plaît envoyer le code et utilisées et le message d'erreur?
Reply

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 01:17 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0