Je voudrais afficher le contenu dun fichier texte sur la ligne de commande. Le fichier ne contient que 5 à 6 caractères. Existe-t-il un moyen simple de le faire?
Réponse
Utilisation de cat
Comme votre fichier est court, vous pouvez utiliser cat
.
cat filename
Utilisation de less
Si vous devez afficher le contenu dun fichier plus long, vous pouvez utiliser un pager comme less
.
less filename
Vous pouvez faire en sorte que less
se comporte comme cat
lorsquil est appelé sur de petits fichiers et se comporte normalement autrement en lui passant le -F
et -X
.
less -FX filename
Jai un alias pour less -FX
. Vous pouvez en créer un vous-même comme ceci:
alias aliasname="less -FX"
Si vous ajoutez lalias à votre configuration du shell , vous pouvez lutiliser pour toujours.
Utilisation de od
Si votre fichier contient des caractères étranges ou non imprimables, vous pouvez utiliser od
pour examiner les caractères. Par exemple,
$ cat file (ÐZ4 ?o=÷jï $ od -c test 0000000 202 233 ( 320 K j 357 024 J 017 h Z 4 240 ? o 0000020 = 367 \n 0000023
Commentaires
Répondre
Même si tout le monde utilise cat filename
pour imprimer un fichier texte sur la sortie standard, le premier objectif est de con cat enating. Depuis la page de manuel de cat:
cat – concatène les fichiers et imprime sur la sortie standard
Désormais, cat est bien pour imprimer des fichiers mais il existe des alternatives:
echo "$(<filename)" or printf "%s" "$(<filename)"
Le ( )
retour la valeur dune expression, dans ce cas le contenu de filename qui est ensuite développé de $
pour echo
ou printf
.
Mise à jour:
< filename
Cela fait exactement ce que vous voulez et est facile à retenir.
Voici un exemple qui vous permet de sélectionner un fichier dans un menu, puis de l’imprimer.
#!/bin/bash select fname in *; do # Don"t forget the "" around the second part, else newlines won"t be printed printf "%s" "$(<$fname)" break done
Pour en savoir plus lecture:
BashPitfalls – fichier cat | sed s / foo / bar /> fichier
Référence Bash – Redirection
Commentaires
- Votre mise à jour: »
< filename
est exactement wh à votre guise, … » est trompeur. Dans lensemble, bien quil sagisse dune discussion intéressante sur les alternatives, je pense quecat
est plus simple. - Bare
< filename
ne le fait pas afficher le contenu du fichier, maiscat filename
le fait. - Vous pouvez également utiliser
tee < filename
. - +1 pour le
echo "$(<filename)"
bashisme. Pas assez de cela ici. - Cette ‘ est une excellente idée pour utiliser la commande interne Linux avec echo
"$(<filename)"
. Merci …
Réponse
Les outils de gestion des fichiers texte sous Unix sont des commandes basiques de tous les jours:
Sous unix et linux pour imprimer tout le contenu du fichier
cat filename.txt
ou
more filename.txt
ou
less filename.txt
Pour les dernières lignes
tail filename.txt
Pour premières lignes
head filename.txt
Réponse
Vous pouvez utiliser la commande suivante pour afficher le contenu dun fichier texte.
cat filename
Commentaires
- Pour plus dinformations sur
cat
, exécutezman cat
.
Réponse
Une option consiste à utiliser more
par exemplemore file.txt
Cependant, il na pas toutes les fonctionnalités ajoutées par less
.
Un exemple simple est que vous ne pouvez pas « t faire défiler vers le haut dans la sortie. Généralement, il a été dépassé par less – qui a été nommé en plaisantant parce que
less is more
Commentaires
- Belle explication sur la raison pour laquelle le nom était moins
Réponse
Jutilise toujours $ less "your file here"
, car cest très simple, fournit un grep
, et vous donne une interface facile à utiliser que vous pouvez faire défiler avec les touches fléchées.
(Elle est également incluse sur presque tous les systèmes * nix)
Commentaires
-
less
est la version overkill demore
(comparezman less
avecman more
), et pour moi, il a deux caractéristiques ennuyeuses: 1) il bascule vers le tampon décran alternatif, lorsque less se termine, le fichier que vous venez de visualiser disparaît 2) à EOF, vous devez taper explicitementq
(je sais, il y a ‘ est une option pour cela). Lune de mes premières actions dans un nouvel environnement consiste donc à définirexport PAGER=/bin/more
dans mon profil et à utilisermore
tout le temps. - @ ott–: 1) Essayez lindicateur
-X
. 2) Essayez lindicateur-E
.less
a un mode démulationmore
. Vous pouvez lactiver en définissant la variable denvironnementLESS_IS_MORE
. Vous pouvez faire défiler vers le haut en mode démulationmore
. - Voir aussi: unix.stackexchange.com/questions / 81129 / …
- Bien quen général, je conviens que
less
est excessivement- compliqué. Sa capacité à exécuter des commandes externes est un parfait exemple de sa sur-complexité. - @EvanTeitelman Je ‘ Jai toujours trouvé la fonctionnalité grep extrêmement utile moi-même, @ott – Je trouve cela à cause de lémulation de ‘ de
more
, et de ‘ s de nombreuses fonctionnalités supplémentaires, il fait très bien le travail.
Réponse
Si cest un gros fichier, et vous voulez rechercher une partie spécifique, vous pouvez utiliser
cat filename | grep text_to_search -ni
Vous pouvez également utiliser un éditeur Vim plus interactif (ou un éditeur vi si vous navez pas Vim):
vim filename Or vi filename
Vim / vi est un excellent éditeur, peut également être utilisé comme lecteur en « Mode normal » ou en utilisant loption -R, il possède de nombreuses fonctionnalités qui vous aidera à parcourir le fichier.
Commentaires
- Plus court pour
vim -R
estview
. Mais gardez à lesprit quil naime pas les redirections, comme indiqué dans xargs et vi – « Lentrée ne provient pas dun terminal » . - merci @manatwork pour la tête haute! Jai récemment commencé à utiliser Vim et je laime bien à cause de ses nombreuses fonctionnalités. En ce qui concerne les redirections, jai oublié cela, merci pour le rappel. Pour le moment, je travaille sur une machine virtuelle distante, où jutilise ssh sans interface graphique, par conséquent, Vim est dune grande utilité, lorsquun autre éditeur graphique ne peut pas fonctionner, que ‘ s pourquoi jai mis laccent sur Vim ici.
Réponse
Utilisez la commande cat pour afficher le contenu du nom de fichier. cat filename
Utilisez la commande vim pour éditer le fichier. nom de fichier vim
sed -n l file
pourrait être utile.less
présente des avantages évidents par rapport aux autres programmes de téléavertisseur commepg
, ou est-ce simplement une question de préférence personnelle?less
a plus caractéristiques quepg
. Jetez un œil auxless(1)
etpg(1)
pages de manuel. Il existe également dautres téléavertisseurs. Jetez un œil à unix.stackexchange.com/questions/81129/… .less
est probablement le téléavertisseur le plus utilisé, mais celui que vous utilisez dépend de vos préférences personnelles.more
etmost
!