Parfois, je reçois une liste séparée par des tabulations, ce qui n’est pas tout à fait aligné, par exemple
var1 var2 var3
var_with_long_name_which_ruins_alignment var2 var3
Y at-il un moyen facile de les rendre alignés?
var1 var2 var3
var_with_long_name_which_ruins_alignment var2 var3
command-line
text-processing
csv
tabulation
Elazar Leibovich
la source
la source
column -t
?columns -t
agit sur les espaces généraux. Pour travailler uniquement avec les onglets , utilisezcolumn -t -s $'\t'
Réponses:
Donc, la réponse devient:
Notez que cela divise les colonnes à n’importe quel espace, pas seulement les onglets. Si vous voulez diviser sur des onglets seulement, utilisez:
Les
-s $'\t'
ensembles délimiteur à onglets uniquement et-n
conserves vides des colonnes adjacentes (onglets).PS: Je veux juste souligner que le mérite revient également à Alex . La suggestion initiale avait été fournie par lui en tant que commentaire à la question, mais n'avait jamais été postée en tant que réponse.
la source
column
:)column
semble malheureusement échouer lorsqu'il rencontre des cellules vides. Voir ce post . En fonction decolumn
votre version , vous pourrez peut-être spécifier l'-n
option pour corriger cela.column -t -s $'\t'
.Voici un script pour le faire:
aligntabs.pl
usage
la source
pr
etnl
sont les deux outils de base pour la mise en forme, et après celaawk
,sed
,perl
, etc.column
column -t -s $'\t'
semble faire le travail.Pour les arrêts de tabulation manuels:
expand -t 42,48
Pour les taquets de tabulation automatiques, comme suggéré par alex :
column -t
(
expand
est présent sur tous les systèmes POSIX.column
est un utilitaire BSD, également disponible dans de nombreuses distributions Linux.)la source
Suite au commentaire de Peter.O sur lequel je voulais aligner (données délimitées par des tabulations, TSV), cette phrase fonctionne très bien:
la source
Explication:
Sed ajoutera un espace entre les délimiteurs vierges
La colonne ajoutera un espacement égal entre les colonnes
devient
Less ouvrira la sortie dans un visualiseur de fichiers. -N et -S ajouteront un numéro de ligne et désactiveront le retour à la ligne
la source
Avec Miller ( http://johnkerl.org/miller/doc ), vous avez une jolie sortie imprimée.
Courir
avoir
la source