Je travaille avec beaucoup de fichiers de données délimités par des tabulations, avec des colonnes variables de longueur incertaine.
Généralement, les utilisateurs voient ces fichiers de manière à les faire descendre du serveur à leur ordinateur Windows ou Mac, puis à les ouvrir dans Excel. Ceci est certainement complet, permettant le filtrage et d'autres options intéressantes. Mais parfois, vous voulez juste regarder quelque chose rapidement sur la ligne de commande.
J'ai écrit un utilitaire simple pour afficher les premières <n>
lignes d'un fichier comme ceci:
--- ligne 1 ---
1: {en-tête-1} 2: {en-tête-2} 3: ...
--- ligne 2 ---
1: {data-1} 2: {data-2} 3: ...
C’est évidemment très boiteux, mais c’est suffisant pour passer par grep ou pour déterminer les colonnes d’en-tête sur lesquelles utiliser "cut -f".
Existe-t-il une visionneuse basée sur * nix pour une session de terminal qui affiche les lignes et les colonnes d'un fichier délimité par des tabulations et vous permet de déplacer la fenêtre de visualisation sur le fichier ou de consulter les données?
Je ne veux pas écrire cela moi-même; au lieu de cela, je ferais juste un reformattre qui remplacerait les tabulations par des espaces pour le remplissage afin que je puisse ouvrir le fichier dans emacs et voir les colonnes alignées. Mais s'il existe déjà un outil pour faire quelque chose comme ça, ce serait génial!
(Ou, je pourrais juste vivre avec Excel.)
-d '\t'
cela ne fonctionne pas, essayez-d $'\t'
psc
n'aime pas les colonnes de plus de 1021 caractères. C'est un problème pour moi. Je voudrais quelque chose de vraiment robuste pour visualiser (pas éditer) des fichiers délimités comme celui-ci. J'ai fait mes propres scripts, mais ils ne sont pas idéaux.Ceci fonctionne pour produire une jolie version imprimée d'un fichier délimité par des tabulations
la source
less -S
:column -t -s $'\t' someFile.tsv | less -S
-n
, la commande devrait donc être:column -nts$'\t' someFile.tsv | less -S
perl -pe 's/((?<=\t)|(?<=^))\t/ \t/g;' someFile.tsv | column -t -s$'\t' | less -S
le lookbehindOuvrez le fichier dans vim et définissez Tab Stop sur une valeur élevée pour que les colonnes soient alignées. Si vous n'êtes pas familier avec vim, commencez par le démarrer:
Ensuite, définissez Tab Stop sur une valeur élevée afin que les colonnes soient alignées. Type:
Si les lignes deviennent trop longues, vous devez également désactiver le retour à la ligne pour pouvoir faire défiler l'écran au lieu de placer le texte:
Se déplacer: il y a plusieurs façons, mais les plus simples, comme les touches fléchées et pgup / pgdown / home / end, fonctionnent. Quelques autres commandes de mouvement utiles:
Vous pouvez rechercher du texte comme vous le feriez chez l'homme:
Ensuite, tapez "n" pour trouver la correspondance suivante et "N" pour rechercher la précédente.
Vous pouvez également naviguer à l'aide de la souris si votre terminal le prend en charge et que vous tapez:
Edit: J'ai oublié que vous pouvez sortir avec:
la source
Il existe une autre solution, qui implique un script. Enregistrez ce script sur, par exemple
tab.pl
,.Puis tapez simplement:
Ou sauvegardez le résultat dans un fichier et ouvrez-le avec votre éditeur de texte préféré:
la source
pr
vous permet d'étendre les onglets à un nombre donné d'espaces avec-e
. Ne pas oublier de passer de-t -T
sorte qu'il n'a pas réellement formater la page entière pour l' impression.la source