Je voudrais afficher le contenu d'un fichier texte sur la ligne de commande. Le fichier ne contient que 5-6 caractères. Y a-t-il un moyen facile de faire ceci?
Je voudrais afficher le contenu d'un fichier texte sur la ligne de commande. Le fichier ne contient que 5-6 caractères. Y a-t-il un moyen facile de faire ceci?
Réponses:
cat
Depuis votre fichier est court, vous pouvez utiliser
cat
.
cat filename
less
Si vous devez afficher le contenu d'un fichier plus long, vous pouvez utiliser un pageur tel que
less
.
less filename
Vous pouvez vous less
comporter comme cat
si vous étiez invoqué dans de petits fichiers et vous comporter normalement sinon en lui passant les indicateurs -F
et -X
.
less -FX filename
J'ai un alias pour less -FX
. Vous pouvez en faire un comme vous-même:
alias aliasname='less -FX'
Si vous ajoutez l'alias à votre configuration shell , vous pouvez l'utiliser indéfiniment.
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
less
- il des avantages évidents par rapport aux autres programmes de téléavertisseurs pg
, ou est-ce que cela se résume à vos préférences personnelles?
less
a plus de fonctionnalités que pg
. Jetez un oeil à la less(1)
et pg(1)
manpages. Il y a aussi d'autres téléavertisseurs. Jetez un coup d’œ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
et most
!
Même si tout le monde utilise cat filename
pour imprimer un fichier texte à la sortie standard premier but est con cat enating. De la page de manuel du chat:
cat - concaténer des fichiers et imprimer sur la sortie standard
Maintenant, cat est bien pour imprimer des fichiers, mais il existe des alternatives:
echo "$(<filename)"
or
printf "%s" "$(<filename)"
Le ( )
retourne la valeur d'une expression, dans ce cas le contenu du nom de fichier qui est ensuite développé par $
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:
BashPitfalls - Fichier cat | fichier sed s / foo / bar /> fichier
Bash Reference - Redirecting
< filename
est exactement ce que vous voulez, ..." est trompeuse. Dans l’ensemble, bien qu’il s’agisse d’une discussion intéressante sur les solutions de rechange, je pense que cat
c’est plus simple.
< filename
n'affiche pas le contenu du fichier, mais le cat filename
fait.
tee < filename
aussi.
echo "$(<filename)"
bashisme. Pas assez de ça ici.
"$(<filename)"
. Merci ...
Les outils de gestion de fichiers texte sous Unix sont des commandes de base 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 les premières lignes
head filename.txt
Une option consiste à utiliser more
par exemple more file.txt
Cependant, il n'a pas toutes les fonctionnalités ajoutées par less
.
Un exemple simple est que vous ne pouvez pas revenir en arrière dans la sortie. Généralement, il a été surpassé par less - nommé en plaisanterie parce que
moins est plus
J'utilise toujours $ less "your file here"
, car c'est très simple, une grep
commande interactive intégrée et une interface facile à utiliser que vous pouvez faire défiler à l'aide des touches fléchées.
(Il est également inclus sur presque tous les systèmes * nix)
less
est la version overkill de more
(comparer man less
avec man more
), et pour moi il a deux fonctionnalités gênantes: 1) il bascule vers le tampon d’écran alternatif, quand moins de temps se termine, le fichier que vous venez de regarder disparaît 2) à EOF vous devez taper explicitement q
(Je sais, il y a une option pour cela). Une de mes premières actions dans un nouvel environnement est donc de définir export PAGER=/bin/more
et d’utiliser more
tout mon temps dans mon profil .
-X
drapeau. 2) Essayez le -E
drapeau. less
a un more
mode d'émulation. Vous pouvez l'activer en définissant la LESS_IS_MORE
variable d'environnement. Vous pouvez faire défiler vers le haut en more
mode émulation.
less
c'est trop compliqué. Sa capacité à exécuter des commandes externes est un exemple parfait de sa complexité excessive.
more
, et de nombreuses fonctionnalités supplémentaires, elle fait très bien son travail.
Si le fichier est volumineux et que vous souhaitez rechercher une partie spécifique, vous pouvez utiliser
cat filename | grep text_to_search -ni
Vous pouvez aussi utiliser un éditeur Vim plus interactif (ou un éditeur vi si vous n’avez pas Vim):
vim filename
Or
vi filename
Vim / vi est un excellent éditeur, peut également être utilisé en tant que lecteur en "Mode normal" ou en utilisant l'option -R, il possède de nombreuses fonctionnalités qui vous aideront à parcourir le fichier.
vim -R
est view
. Mais gardez à l'esprit qu'il n'aime pas les redirections, comme indiqué dans xargs et vi - «L'entrée ne provient pas d'un terminal» .
Utilisez la commande cat pour afficher le contenu du nom de fichier. nom du fichier chat
Utilisez la commande vim pour éditer le fichier. vim filename
sed -n l file
pourrait également être utile.