![]() |
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.
|
|
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 |
| UNIX pour les nuls Questions et réponses Si vous ne savez pas où poster un UNIX ou Linux question, post it here. Tous les systèmes UNIX et Linux, débutants bienvenus! |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| Communiqués de développement: Linux Mint 4.0 Beta "Fluxbox", 4.0 Alpha "Debian" | iBot | UNIX et Linux News RSS | 0 | 01-04-2008 03:00 PM |
| Expliquer la ligne "mn_code \u003d` env | grep "mn .." | awk-F "\u003d" '(print $ 2)' `" | Lokesha | UNIX pour les nuls Questions et réponses | 4 | 12-20-2007 01:52 AM |
| N ° utpmx entrée: vous devez exec "login" de plus bas niveau "shell" | peterpan | UNIX pour les nuls Questions et réponses | 0 | 01-18-2006 04:15 AM |
| joindre deux lignes lors de la deuxième ligne contient "DOLLAR" | powah | De programmation et de script Shell | 2 | 10-21-2005 06:30 PM |
| ~ ~ Aide et rejoindre "multijoin" | hyo77 | De programmation et de script Shell | 1 | 11-19-2003 01:20 AM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
besoin d'aide pour utiliser "join"
Chers experts,
J'ai un besoin urgent de savoir comment vous joindre à ces 2 fichiers qui correspondent. J'ai un fichier qui ressemble à Citation:
Citation:
Sara |
|
||||
|
Deux choses:
Je n'ai jamais utilisé rejoindre, vous êtes probablement à obtenir une meilleure réponse de la part de quelqu'un d'autre. Je n'ai pas trouvé l'énoncé du problème très clair, et en regardant les données n'ont pas grand-chose. Il semble qu'il n'y a pas de points communs entre les données. Par exemple, les premières entrées des deux fichiers censée correspondre? 1-0-0060122450000 0060122000550 00060122 Est-ce que les numéros de ce que vous essayez de joindre le? Si oui, quelle est la sortie désirée après vous? Quoi qu'il en soit, j'ai expérimenté à rejoindre un peu et a trouvé les résultats peuvent être facilement envoyés par awk simplement imprimer les champs dont vous avez besoin. Peut-être que vous devriez approcher comme ça. Si vous affichez une description plus détaillée de ce que vous êtes après mai aide. |
|
||||
|
désolé je n'ai pas été précis.
Les deux fichiers sont énormes, plus de 2 millions de dossiers chacun. Mais le format est le même. La seule différence est que l'on a un autre fichier "1-0 -" ou "1.1 -" ou "1.3 -". Im faire un long chemin en réduisant les caractères de 1-4 et ensuite, avec la pâte et d'y adhérer à nouveau plus tard. Apprécier si vous pouviez me faire savoir comment le faire en utilisant awk. Merci! sara |
|
||||
|
Eh bien mes hypothèses sur ce que vous essayez de faire ont été mauvais, si mon awk solution pan n'a pas pour moi. Toutefois, je lui ai donné un coup de feu avec un très court script python, et je pense que je mai ont ce qu'il vous faut.
Pour être honnête, on n'a toujours pas me donner une idée claire de ce que vous vouliez votre sortie de l'air, alors voici ce que je suppose. Si je me trompe, alors désolé, ceci est mon dernier coup. En utilisant les quatre premières lignes de vos données, je pense que vous voulez que cette sortie: 0060122450000 2000550 0060122450001 2000632 0060122450002 2001374 0060122450006 2004006 Le premier numéro est de file_a avec les quatre premiers caractères coupée. Le deuxième numéro est la première valeur déshabiller. Si cela est correct, alors voici un super simple script python pour obtenir que pour vous: Nom du script: foo.py # Ouvrir les fichiers de données fa \u003d open ( 'file_a', 'rb') fb \u003d open ( 'file_b', 'rb') # Aller à travers les fichiers ligne par ligne de décapage de pièces seulement # Que vous souhaitez conserver. Aussi la bande des nouvelles lignes à partir de la fin. pour la ligne en fa: BITA \u003d line [4]. bande ( '\ n') tmpb \u003d fb.readline (). bande ( '\ n') # Vous pouvez ajouter un chk ici de veiller à ce tmpb matches BITA. Vous devrez faire bien d'autres hacher. Avec des millions de documents, je le faire. bitb \u003d tmpb [-7:] print BITA, bitb # Fermer les fichiers fa.close () fb.close () Exécuter le script comme ceci: shellPrompt $ python foo.py Le scénario fait l'hypothèse que vos fichiers de données sont appariées correctement, avec les entrées correspondant à la position sage tout au long. Si elles ne l'êtes pas, alors cela ne fonctionnera pas sans modifications. Vos données seront erronées si les valeurs sont décalées. Et enfin, il ya probablement plus élégante python shell ou techniques de le faire, mais cela fonctionne. Bonne chance. Dernière édition par H2OBoodle; au 02/02/2008 08:18 AM.. Motif: donner plus d'informations sur la façon d'exécuter le script, mettre en garde sur la corruption de données si les données ne sont pas alignés. |
|
||||
|
rejoindre
Aismann
Serez-vous svp préciser ce que vous voulez dans le fichier de sortie? voir à la réussite de l'exécution de rejoindre commd vous avez besoin sur le terrain doivent être de même longueur et classés dans le même ordre. c'est-à-dire si les chiffres -> sort-n, et si alfabet puis -> sort-d. de manière à la fois le fichier est trié sur le même ordre et pour les plus rapides (un peu) l'exécution conserver le terrain en tant que 1er et de l'utilisation rejoindre -1 1 -2 1-t (le délimiteur si vous avez utilisé une)-o 1,1 1,2 1,3 file1 fichier 2> fichier de sortie. Et votre travail est fait. Apprécier. |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|