In * nix, comment afficher (cat) un fichier sans retour à la ligne: les lignes plus longues doivent être coupées de manière à tenir dans la largeur de l'écran.Fichier cat sans retour à la ligne
Répondre
Notez que cut
accepte un nom de fichier comme argument.
Cela semble fonctionner pour moi:
watch 'bash -c "cut -c -$COLUMNS file"'
Pour les tests, j'ai ajouté une marge de droite:
watch 'bash -c "cut -c -$(($COLUMNS-10)) file"'
Quand je redimensionné mon terminal, la troncature a été mis à jour pour correspondre.
Vous pouvez rechercher fmt
:
fmt file
Cette reformate assez agressivement votre texte, il peut faire plus que ce que vous voulez.
En variante, la commande cut
peut réduire le texte à une largeur de colonne spécifique, moins jeter au-delà de la marge de droite:
cat file | cut -c1-80
Une autre option pratique est la commande less -S
, qui affiche un fichier dans une fenêtre de l'écran complet avec gauche/défilement bon pour les longues lignes:
less -S file
En effet, il fait plus que ce que je veux: il lignes concaténer. – Alexandru
En fait, je regarde le contenu du fichier à l'aide de la montre "fichier cat", donc je ne peux pas utiliser moins. fichier cat | couper -c1-80 a fait l'affaire, en partie. Un moyen d'ajuster la coupe à la taille de l'écran? – Alexandru
Vous pouvez avoir la variable d'environnement '$ COLUMNS' définie: try ' cut -c1- $ COLUMNS file' – mob
comme indiqué par d'autres, la réponse est cut -c ...
, mais d'ajouter une dynamique, je préfère ceci:
cat file.txt |cut -c -$(tput cols)
pour basculer à long retour à la ligne en moins. La valeur par défaut est d'envelopper.
- `less file`
- in file type `"-S"` to toggle to truncate on line width
- to toggle back `"-S"` again.
Vous pouvez également appeler' less' avec '-S' en option : 'less -S file' ou l'inclure dans votre environnement:' export LESS = "- S" '(plus d'autres options). Dans les deux cas, vous pouvez toujours utiliser la bascule une fois qu'elle est en cours d'exécution si vous le souhaitez. –
L'utilisation de cut
ne tient pas compte du fait que les onglets sont considérés comme un seul caractère \t
mais ils sont imprimés en 8 espaces vides. Ainsi, un fichier avec des onglets sera coupé à différentes colonnes perçues.
less -S
tronque de façon optimale le texte, également en présence d'onglets, mais AFAIK il ne peut pas être utilisé pour imprimer de façon non interactive le fichier "haché".
Une solution de travail est de convertir les onglets dans des espaces par expand
puis cut
la sortie: expand < file | cut -c -$(tput cols)
'expand' est une aide précieuse; merci, je ne faisais que lutter avec ce problème (avec des onglets). Content de faire défiler vers le bas! – Lambart
- 1. sed + sans commande cat
- 2. sans retour à la ligne Résultat de la recherche jQuery
- 3. option de retour à la ligne/retour à la ligne dans Aptana Studio 3 Beta?
- 4. changer cat-art.php dans cat/art.php
- 5. Retour à la ligne dans Firefox 2.0
- 6. Expression régulière et retour à la ligne
- 7. Java replaceAll avec retour à la ligne
- 8. Excel 2007 - Étiquettes de l'axe X de retour à la ligne (saut de ligne, retour à la ligne)
- 9. écriture d'une chaîne base64 à un fichier sans retour chariot
- 10. PHP - Retour de la dernière ligne dans un fichier?
- 11. Perl Term :: ReadKey n'attend pas de retour à la ligne
- 12. Perl: retour au début de la ligne
- 13. Comment préserver et formater le contenu d'un UserControl wpf sans rompre le retour à la ligne?
- 14. terme à l'intérieur d'emacs :: comment désactiver «retour à la ligne»
- 15. Comment faire un retour à la ligne dans la sortie
- 16. Java: BufferedWriter sautant la ligne de retour
- 17. Comment puis-je passer un fichier de sortie d'un script AWK à un argument dans cat?
- 18. Supprimer la ligne se terminant par un caractère de retour à la ligne dans le fichier texte
- 19. sIFR 3.0 - Retour de texte/retour à la ligne incohérent dans Firefox 3 sur PC uniquement
- 20. Retour à l'écran global sans quitter l'application
- 21. Ruby: Comment supprimer de manière sélective le retour à la ligne d'un fichier texte?
- 22. Retour d'un NSArray sans fuite?
- 23. mx: Retour à la ligne de mx: Liste
- 24. Empêcher le retour à la ligne dans DataGrid
- 25. blanc garniture de retour à la ligne chaîne en Ruby
- 26. Arrêter le retour à la ligne dans VS2008 (vb)
- 27. Textarea prévention de retour à la ligne sur Enter (jQuery)
- 28. Retour à la ligne de commande dans Gvim
- 29. Zone de texte avec retour à la ligne dans matplotlib?
- 30. Désactivation du retour à la ligne dans une TextArea
Lorsque je lance votre script 'watch./Colscript', j'en vois 80 affichés. Quand je change la largeur en faisant glisser le bord de la fenêtre (j'utilise PuTTY) le nombre change pour correspondre. Que vois-tu? –
Je ne vois rien, mais j'ai compris pourquoi: différentes versions de bash. ./colscript fonctionne sur bash 4.0 (mon ordinateur), mais pas sur bash 3.0 (un ordinateur distant). ./colscript ne fonctionne sur aucune des deux versions. – Alexandru
'echo $ BASH_VERSION' me donne" 3.2.48 (1) -release "La raison pour laquelle exécuter'./Colscript' depuis la ligne de commande fait écho à une ligne vide est que '$ COLUMNS' est seulement rempli pour les shells interactifs. Vous pouvez essayer d'ajouter '-i' à la fin de la première ligne de'./Colscript' pour avoir '#!/Bin/bash -i' –