J'ai deux fichiers avec environ 12900 et 4400 entrées respectivement, que je veux joindre. Les fichiers contiennent des informations sur l'emplacement de toutes les stations d'observation météorologique terrestres du monde entier. Le plus gros fichier est mis à jour toutes les deux semaines, et le plus petit une fois par an environ. Les fichiers originaux peuvent être trouvés ici ( http://www.wmo.int/pages/prog/www/ois/volume-a/vola-home.htm et http://weather.rap.ucar.edu/surface/ stations.txt ). Les fichiers que j'ai sont déjà manipulés par moi avec un script mixte awk, sed et bash. J'utilise les fichiers pour visualiser les données à l'aide du package GEMPAK, qui est disponible gratuitement auprès d'Unidata. Le plus gros fichier fonctionnera avec GEMPAK, mais pas uniquement avec sa pleine capacité. Pour cela, une jointure est nécessaire.
Le fichier 1 contient des informations de localisation pour les stations d'observation météorologique, où les 6 premiers chiffres sont l'identifiant unique de la station. Les différents paramètres (numéro de station, nom de station, code de pays, longitude de latitude et altitude de station) sont définis uniquement par sa position sur la ligne, c'est-à-dire sans onglets.
060090 AKRABERG FYR DN 6138 -666 101
060100 VAGA FLOGHAVN DN 6205 -728 88
060110 TORSHAVN DN 6201 -675 55
060120 KIRKJA DN 6231 -631 55
060130 KLAKSVIK HELIPORT DN 6221 -656 75
060160 HORNS REV A DN 5550 786 21
060170 HORNS REV B DN 5558 761 10
060190 SILSTRUP DN 5691 863 0
060210 HANSTHOLM DN 5711 858 0
060220 TYRA OEST DN 5571 480 43
060240 THISTED LUFTHAVN DN 5706 870 8
060290 GROENLANDSHAVNEN DN 5703 1005 0
060300 FLYVESTATION AALBORG DN 5708 985 13
060310 TYLSTRUP DN 5718 995 0
060320 STENHOEJ DN 5736 1033 56
060330 HIRTSHALS DN 5758 995 0
060340 SINDAL FLYVEPLADS DN 5750 1021 28
Le fichier 2 contient l'identifiant unique du fichier 1 et un deuxième identifiant à 4 caractères (localisateur OACI).
060100 EKVG
060220 EKGF
060240 EKTS
060300 EKYT
060340 EKSN
060480 EKHS
060540 EKHO
060600 EKKA
060620 EKSV
060660 EKVJ
060700 EKAH
060780 EKAT
Je veux joindre les deux fichiers, afin que le fichier résultant ait l'identifiant à 4 caractères dans les 4 premières positions de la ligne, c'est-à-dire que l'identifiant devrait remplacer les 4 espaces.
060090 AKRABERG FYR DN 6138 -666 101
EKVG 060100 VAGA FLOGHAVN DN 6205 -728 88
060110 TORSHAVN DN 6201 -675 55
060120 KIRKJA DN 6231 -631 55
060130 KLAKSVIK HELIPORT DN 6221 -656 75
060160 HORNS REV A DN 5550 786 21
060170 HORNS REV B DN 5558 761 10
060190 SILSTRUP DN 5691 863 0
060210 HANSTHOLM DN 5711 858 0
EKGF 060220 TYRA OEST DN 5571 480 43
EKTS 060240 THISTED LUFTHAVN DN 5706 870 8
060290 GROENLANDSHAVNEN DN 5703 1005 0
EKYT 060300 FLYVESTATION AALBORG DN 5708 985 13
060310 TYLSTRUP DN 5718 995 0
060320 STENHOEJ DN 5736 1033 56
060330 HIRTSHALS DN 5758 995 0
EKSN 060340 SINDAL FLYVEPLADS DN 5750 1021 28
Est-il possible d'accomplir cette tâche avec un script bash et / ou awk?