Il s'agit de la commande tabmergep qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
tabmerge - unifier les fichiers délimités sur les champs communs
SYNOPSIS
tabmerge [action] [options] fichier1 fichier2 [...]
Actes:
--min Ne prend que les champs présents dans tous les fichiers [DEFAUT]
--max Prend tous les champs présents
-f|--fields=f1[,f2] Ne prend que les champs mentionnés dans le
liste séparée par des virgules
Options :
-l|--list Liste les champs disponibles
--fs=x Utilisez "x" comme séparateur de champs
(la valeur par défaut est l'onglet "\t")
--rs=x Utiliser "x" comme séparateur d'enregistrements
(la valeur par défaut est la nouvelle ligne "\n")
-s|--sort=f1[,f2] Trier les données ASCII-bétiquement sur le(s) champ(s)
--stdout Imprimer les données au format délimité d'origine
(c'est-à-dire pas sous forme de tableau)
--help Afficher une brève aide et quitter
--man Afficher la documentation complète
DESCRIPTION
Ce programme fusionne les champs -- pas les lignes -- des fichiers texte délimités. C'est-à-dire si
plusieurs fichiers sont presque mais pas tout à fait différents les uns des autres dans leur structure (en
leurs noms de champs, numéros ou commandes), ce script permet d'unifier facilement les fichiers
dans un seul fichier avec tous les mêmes champs. La sortie peut être basée sur des champs déterminés
par les trois drapeaux "action".
Pour les exemples suivants, considérons trois fichiers qui contiennent les champs suivants :
+--------------+---------------------------------+
| Fichier | Champs |
+--------------+---------------------------------+
| fusion1.tab | nom, type, poste |
| merge2.tab | nom, type, position, lod_score |
| merge3.tab | nom, poste |
+--------------+---------------------------------+
Pour lister tous les champs disponibles dans les fichiers et le nombre de fois où ils sont présents :
$ tabmerge --fusion de listes*
+------------+-------------------+
| Champ | Nombre de fois présent |
+------------+-------------------+
| lod_score | 1 |
| nom | 3 |
| poste | 3 |
| taper | 2 |
+------------+-------------------+
Pour fusionner les fichiers sur les champs qui se chevauchent minimum :
$ fusion de tabulation*
+----------+----------+
| nom | poste |
+----------+----------+
| RM104 | 2.30hXNUMX |
| RM105 | 4.5hXNUMX |
| TX5509 | 10.4 |
| UU189 | 19.0 |
| Xpsm122 | 3.3 |
| Xpsr9556 | 4.5 |
| DRTL | 2.30hXNUMX |
| ALTX | 4.5 |
| DWRF | 10.4 |
+----------+----------+
Pour fusionner les fichiers et inclure tous les champs :
$ tabmerge --fusion maximale*
+---------------+----------+--------------+--------+
| lod_score | nom | poste | taper |
+---------------+----------+--------------+--------+
| | RM104 | 2.30hXNUMX | RFLP |
| | RM105 | 4.5hXNUMX | RFLP |
| | TX5509 | 10.4 | AFLP |
| 2.4 | UU189 | 19.0 | RSS |
| 1.2 | Xpsm122 | 3.3 | Marqueur |
| 1.2 | Xpsr9556 | 4.5 | Marqueur |
| | DRTL | 2.30hXNUMX | |
| | ALTX | 4.5 | |
| | DWRF | 10.4 | |
+---------------+----------+--------------+--------+
Pour fusionner et extraire uniquement les champs « nom » et « type » :
$ tabmerge -f nom, tapez merge*
+----------+--------+
| nom | taper |
+----------+--------+
| RM104 | RFLP |
| RM105 | RFLP |
| TX5509 | AFLP |
| UU189 | RSS |
| Xpsm122 | Marqueur |
| Xpsr9556 | Marqueur |
| DRTL | |
| ALTX | |
| DWRF | |
+----------+--------+
Pour fusionner les fichiers uniquement sur les champs "name" et "lod_score" et trier sur le nom :
$ tabmerge -f nom,lod_score -s nom fusion*
+----------+-----------+
| nom | lod_score |
+----------+-----------+
| ALTX | |
| DRTL | |
| DWRF | |
| RM104 | |
| RM105 | |
| TX5509 | |
| UU189 | 2.4 |
| Xpsm122 | 1.2 |
| Xpsr9556 | 1.2 |
+----------+-----------+
Pour faire la même chose mais imiter l'entrée d'origine délimitée par des tabulations :
$ tabmerge -f nom,lod_score -s nom --stdout merge*
nom lod_score
ALTX
DRTL
DWRF
RM104
RM105
TX5509
UU189 2.4
Xpsm122 1.2
Xpsr9556 1.2
Pourquoi voudriez-vous faire cela? Supposons que vous ayez plusieurs fichiers texte délimités avec presque
la même structure et que vous voulez créer un seul fichier à partir d'eux, mais les champs peuvent être dans un
ordre différent dans chaque fichier et/ou certains fichiers peuvent contenir plus ou moins de champs que
autres. (Aussi tiré par les cheveux que cela puisse paraître, cela arrive à l'auteur plus qu'il ne le voudrait.)
Utilisez tabmergep en ligne en utilisant les services onworks.net