![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
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! |
|
||||
|
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 |
|
||||
|
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. |
|
||||
|
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 |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|