J'ai des fichiers texte sur plusieurs lignes de données (parfois) délimitées par des tabulations. Je voudrais sortir le fichier afin que je puisse y jeter un coup d'œil - donc je voudrais seulement voir les 80 premiers caractères de chaque ligne (j'ai conçu le fichier texte pour mettre les choses importantes en premier sur chaque ligne).
J'avais pensé que je pouvais utiliser cat pour lire chaque ligne du fichier et envoyer chaque ligne à la commande suivante dans un pipe:
cat tabfile | cut -c -80
Mais cela semblait cassé. J'ai essayé de faire des singes, et grep semble fonctionner - mais j'ai découvert que non, ce n'était pas le cas (toutes les lignes du fichier ne comptaient pas plus de 80 caractères) - il semble que les onglets soient comptés comme des caractères uniques par coupe.
J'ai essayé:
cat tabfile | tr \t \040 | cut -c -80
Même si cela altérerait un peu mes données, en éliminant la lisibilité des espaces blancs. Mais cela n'a pas fonctionné. Pas plus:
cat tabfile | tr \011 \040 | cut -c -80
Peut-être que j'utilise tr mal? J'ai eu des problèmes avec tr auparavant, je voulais supprimer plusieurs espaces (la version de tr à laquelle j'ai accès sur cette machine semble avoir une option -s pour presser plusieurs caractères - je devrais peut-être jouer avec)
Je suis sûr que si je déconnais, je pourrais utiliser perl, awk ou sed, ou quelque chose pour le faire.
Cependant, j'aimerais une solution qui utilise des commandes régulières (POSIX?), Afin qu'elle soit aussi portable que possible. Si je finis par utiliser tr, j'essaierais probablement de transformer les onglets en caractères, peut-être de faire un calcul, de couper le calcul, puis de reconvertir ces caractères en onglets pour la sortie.
Il n'a pas besoin d'être une seule ligne / entré directement sur la ligne de commande - un script est très bien.
Plus d'informations sur les fichiers à onglets:
J'utilise tab pour casser les champs, car un jour je souhaiterai peut-être importer des données dans un autre programme. J'ai donc tendance à n'avoir qu'un seul onglet entre les éléments de contenu. Mais j'utilise également des onglets pour aligner les choses avec les colonnes verticales, pour aider à la lisibilité lorsque vous regardez le fichier texte brut. Ce qui signifie que pour certains morceaux de texte, je garnis la fin du contenu avec des espaces jusqu'à ce que l'onglet fonctionne en alignant le champ suivant avec ceux au-dessus et en dessous.
DarkTurquoise # 00CED1 Mers, cieux, chaloupes Nature MediumSpringGreen # 00FA9A Utile pour les arbres Magic Lime # 00FF00 Uniquement pour les poulets de printemps et fru $
pr
de coreutils
: pr -1 -t -l200 -W80 file
. Augmentez / diminuez la longueur de la page (nombre après -l
) selon vos besoins.